筛选的pandas数据帧包含数据帧的布尔版本



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

然后我有一个相同的panda数据帧,具有X乘Y的维度(与df1相同(,包含True/False值。

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

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

如果没有可复制的示例,我可能会错过一些调整/细节,但我认为您可以通过数据帧乘法来实现这一点

df1.mul(df2)

这将使每个元素与另一个数据帧中的相应元素相乘,其中True将返回另一个元素,False将返回null。

也可以使用掩码

df1.mask(df2)

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

10x10数据帧上的快速基准测试表明,df.mul方法比快约5倍

最新更新