首页 > 解决方案 > 大熊猫 NaN 与 nan 的比较

问题描述

我在 Pandas 中有一个数据框,其中包含 A 列和 B 列(我使用的列更多)

A  | B
--------
C6   A2   
E9
     F3

我正在进行比较,以根据来自另一个数据帧的某些给定值找到单行(。(即df[(df.A == 'C6') & (df.B == 'A2')]会返回第一行。

在我不得不与 NaN 进行比较之前,这很有效。我认为原因是因为np.nan == np.nan退货False

有没有一种简单的方法可以修改我的代码以比较字符串或 NaN 而不会使代码复杂化?

编辑:好的,我认为我没有很好地解释这一点。给定我上面的数据框..给定同一公式中的“E9”或 nan 输入,我希望它返回相应的行。

df[df.A == 'E9']返回第二行但df[df.A == np.nan]返回空数据框。

pd.isna()只会在输入的情况下帮助我NaN

标签: pythonpandasdataframe

解决方案


尝试与空字符串匹配,因为np.nan == np.nan返回false.

df[(df.A == 'C6')]
df[df.A == ""]
df[df.B == ""]

输出:

    A   B
0  C6  A9
  A   B
2    F3
  A   B
1 E9  

推荐阅读