python - 大熊猫 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
解决方案
尝试与空字符串匹配,因为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
推荐阅读
- python - 避免 udp socket 中数据堆积或从 udp socket 读取最新数据
- php - 将 PHP 从 5.2 更新到 7 时出错
- recursion - 求解递归定义的函数
- python - ner, spacy, 句子分割
- r - 在 R 中结合点 shapefile 和道路 shapefile
- spring-boot - Kubernetes 自动缩放内存
- python - 计算线性回归斜率矩阵(与相关矩阵相同) - Python/Pandas
- pyspark - Pyspark 中的 Percentile.INC
- r - 将按键字符转换为R中的整数
- python-3.x - 比较 2 个包含不同键的字典列表,如果找到匹配则更新