我有两个数据框:
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
,然后通过组合sort_index
。该解决方案假定所有3个数据帧共享相同的索引。
mask = df0['Split'] == 'Y'
res = pd.concat([df1[mask], df2[~mask]]).sort_index()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句