在进行大熊猫比较时,如何从np.nan> np.nan返回np.nan?

时间:2020-07-30 13:39:10

标签: python pandas dataframe comparison nan

我有以下两个dataFrame:

a = pd.DataFrame([[1,2, 3],[4,3,6], [np.nan, 2, np.nan]])
     0  1    2
0  1.0  2  3.0
1  4.0  3  6.0
2  NaN  2  NaN

b = pd.DataFrame([[0,1,3],[5,3,5 ],[np.nan, np.nan, np.nan]])
     0    1    2
0  0.0  1.0  3.0
1  5.0  3.0  5.0
2  NaN  NaN  NaN

a> b的比较结果为:

       0      1      2
0   True   True  False
1  False  False   True
2  False  False  False

但是我希望输出看起来像这样:

     0      1      2
0   True   True  False
1  False  False   True
2   nan    nan     nan

2>np.nannp.nan>np.nan的比较均应产生np.nan。 (或任何其他不同于True和False的随机值)

任何事情都会帮忙!

1 个答案:

答案 0 :(得分:5)

我们需要添加一个mask

yourdf=a.gt(b).mask(a.isna()|b.isna(),'nan')
Out[153]: 
       0      1      2
0   True   True  False
1  False  False   True
2    nan    nan    nan