我有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?
答案 0 :(得分:1)
试试吧:
*java.lang.IndexOutOfBoundsException*ArrayList.java:653*TestConverter.java:142*
输出:
df1.gt(df2).astype(str).mask(df2.isnull())
你可以试试,但是pandas改变任何系列的dtype的方式,使用null来浮动dtype你会得到以下结果:
a b c
0 NaN NaN NaN
1 True NaN NaN
2 True True NaN
3 False True NaN
4 False False False
输出:
df1.gt(df2).mask(df2.isnull())