繁体   English   中英

根据应用于两个数据框的条件创建第三个数据框

[英]Create third dataframe based on condition applied to two dataframes

我有两个数据框:

df1 = pd.DataFrame(rng.rand(1000, 3), columns=['A', 'B', 'C'])
df2 = pd.DataFrame(rng.rand(1000, 3), columns=['A', 'B', 'C'])

我也有一个包含“ Y”和“ N”的列:

df0['Split'] = ['Y', 'N', 'Y'...]

我想创建第三个数据帧,如果df0 ['Split'] ='Y'返回df1,如果df0 ['Split'] ='N'返回df2。 如果可能,我想保持原始两个数据框的形状。

我以为我可以做以下事情:

if df0['Split'] == Y:
    return df1
if df0['Split'] == N:
    return df2
else:
    return 0

实际上,我的专栏要比A到C多得多。感谢您的帮助。

您可以使用布尔过滤来构造两个数据帧,先通过pd.concat进行pd.concat ,然后通过pd.concat进行sort_index 该解决方案假定所有3个数据帧共享相同的索引。

mask = df0['Split'] == 'Y'
res = pd.concat([df1[mask], df2[~mask]]).sort_index()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM