在 Pandas 中,我有一个 X 乘 Y 维度包含值的数据框。
然后我有一个相同的 Pandas 数据框,其中 X 乘 Y 维度(与 df1 相同)包含 True/False 值。
我只想返回来自 df1 的元素,其中 df2 上的相同位置的值 = True。
最快的方法是什么?有没有办法在不转换为 numpy 数组的情况下做到这一点?
答案 0 :(得分:2)
如果没有可重复的示例,我可能会在这里遗漏一些调整/细节,但我认为您可以通过数据帧乘法来完成此操作
df1.mul(df2)
这会将每个元素乘以另一个数据帧中的相应元素,其中 True
将返回另一个元素,False
将返回空值。
答案 1 :(得分:0)
也可以使用mask
df1.mask(df2)
这类似于 df1[df2]
并用 NaN 替换隐藏值,但您可以使用 other
选项选择要替换的值
对 10x10 数据帧的快速基准测试表明,df.mul
方法的速度提高了约 5 倍