gpt4 book ai didi

python - 如何在Python中比较2个数据帧而不比较空值?

转载 作者:行者123 更新时间:2023-12-01 09:33:48 25 4
gpt4 key购买 nike

我有 2 个数据框:

df1:
a b c
0 1 2 6
1 2 3 7
2 3 4 8
3 4 5 9
4 5 6 10

df2:
a b c
0 NaN NaN NaN
1 1.0 NaN NaN
2 2.0 2.0 NaN
3 4.0 3.0 NaN
4 6.0 6.0 11.0

当我尝试执行 df1 > df2 时,输出为:

In [150]:df1 > df2
Out[150]:
a b c
0 False False False
1 True False False
2 True True False
3 False True False
4 False False False

但我期望的是这样的:

       a      b      c
0 NaN NaN NaN
1 True NaN NaN
2 True True NaN
3 False True NaN
4 False False False

那么,我应该如何比较 2 df 并使 null 保持为 null?

最佳答案

让我们尝试一下:

df1.gt(df2).astype(str).mask(df2.isnull())

输出:

       a      b      c
0 NaN NaN NaN
1 True NaN NaN
2 True True NaN
3 False True NaN
4 False False False

您可以尝试,但是 pandas 将任何具有 null 的系列的 dtype 更改为 float dtype 的方式您将得到以下结果:

df1.gt(df2).mask(df2.isnull())

输出:

     a    b    c
0 NaN NaN NaN
1 1.0 NaN NaN
2 1.0 1.0 NaN
3 0.0 1.0 NaN
4 0.0 0.0 0.0

关于python - 如何在Python中比较2个数据帧而不比较空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49714337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com