过滤的熊猫数据框包含数据框的布尔版本

时间:2021-07-07 17:51:25

标签: python pandas numpy

在 Pandas 中,我有一个 X 乘 Y 维度包含值的数据框。

然后我有一个相同的 Pandas 数据框,其中 X 乘 Y 维度(与 df1 相同)包含 True/False 值。

我只想返回来自 df1 的元素,其中 df2 上的相同位置的值 = True。

最快的方法是什么?有没有办法在不转换为 numpy 数组的情况下做到这一点?

2 个答案:

答案 0 :(得分:2)

如果没有可重复的示例,我可能会在这里遗漏一些调整/细节,但我认为您可以通过数据帧乘法来完成此操作

df1.mul(df2)

这会将每个元素乘以另一个数据帧中的相应元素,其中 True 将返回另一个元素,False 将返回空值。

答案 1 :(得分:0)

也可以使用mask

df1.mask(df2)

这类似于 df1[df2] 并用 NaN 替换隐藏值,但您可以使用 other 选项选择要替换的值

对 10x10 数据帧的快速基准测试表明,df.mul 方法的速度提高了约 5 倍