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

时间:2019-01-14 09:36:44

标签: python pandas dataframe conditional

我有两个数据框:

let contentEl = document.getElementById('content')
let printEl = document.getElementById('print-content')

printEl.appencChild(contentEl.innerHtml)
contentEl.style.display = "None"

window.print()

我还有一列由“ Y”和“ N”组成的列:

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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