我有以下两个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.nan
和np.nan>np.nan
的比较均应产生np.nan
。 (或任何其他不同于True和False的随机值)
任何事情都会帮忙!
答案 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