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

我有两个数据框:

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多得多。感谢您的帮助。

pp

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有两个数据框,如何创建第三个

根据多个选择条件匹配的两个不同数据框中的行构建第三个数据框

Pandas 检查两个数据框列并访问第三个值

比较两个数据框列并输出第三个

以第三个为x轴绘制两个数据框列

基于第三个数据框中匹配值的具有新布尔值列的两个数据框的乘积

从两个不同数据框中的列中求和和百分比,并将结果附加到第三个数据框中

如果数据中的前两个值小于数据中的第三个值,则如何根据返回值的条件过滤数据框?

根据第三列中的条件合并两个数据框

R:根据跨三个不同列的映射值合并两个数据框

创建两个数组,然后在用作两个微调器uipickerview的数据的第三个数组中使用它们

将两个csv文件与python pandas比较,并使用产生的数据框创建第三个文件

将两个数据库合并为第三个数据库

使用第三个值从数据框中提取两个值

根据行的条件将两种排序方法应用于一个数据框

Python:根据第三个数组对两个数组进行排序

在前两个数组的基础上创建第三个数组

在链接这两个数据帧的第三个数据帧上合并两个数据帧

Java映射两个数组中的数据并将其插入第三个数组

我想比较两个numpy数组并创建第三个数组

根据id合并三个数据框

从两个数组中获取正数,然后从中创建第三个

有没有办法将两个数据集同时连接到第三个?

Python/pandas:从两个数据帧中查找匹配值并返回第三个值

比较两个数据框并根据某些条件创建新的数据框

比较两个或三个数据框中的列值并合并

检索和更新函数,用于在第三个数组中求和两个数组

我如何合并这两个数据帧以在Spark Scala中生成第三个数据帧?

根据第三个表的数据连接两个表