python - 进行 Pandas 比较时,如何从 np.nan>np.nan 返回 np.nan?

标签 python pandas dataframe comparison nan

我有以下两个数据框:

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 的随机值)

任何事情都会有帮助!

最佳答案

我们需要添加一个掩码

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

关于python - 进行 Pandas 比较时,如何从 np.nan>np.nan 返回 np.nan?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63174432/

相关文章:

python - 使用 Pandas 将多个 csv 文件读入单独的数据帧

python - 在 Python 中读取具有不同列数的大文件的最快方法

python - 从纬度/经度对的数据框中删除圆括号

python - 创建基于动态更改列的公式以在 Pandas Dataframe 列中设置值

python ,SQLite3 : cursor returns duplicates when a commit intervenes

python - 如果我没有得到 float 作为输入,我该如何打印一些东西

python - 使用 pd.Categorical 对多索引 pd.Series 进行排序?

python - 为 Flask 中的所有蓝图注册全局请求处理程序

python - 从 stdout 获取原始流数据到 python 程序

python - 如何计算 pandas Dataframe 中分类数据的子组?