如何检查pandas数据框中的<NA>类型变量是否是<NA>? np.nan() 不工作

问题描述 投票:0回答:2

我有一个数据框,其中有一列,其值类似于:

     YEAR_TORONTO
0    <NA>
1    2016
2    <NA>
3    1999

出于该代码段之外的其他原因,我需要通过

for
循环单独检查此数据帧的每个元素,因此我正在寻找符合我的实现的解决方案。

基本上我现在检查是否存在的代码是:

if np.isnan(df.get("YEAR_TORONTO")[row]):

这导致我的

<NA>
值出现以下错误:

boolean value of NA is ambiguous

知道我可以做什么来修复这个错误吗?非常感谢帮助

python pandas dataframe nan
2个回答
7
投票

正如 sammywemmy 所说,

pd.isna()
应该可以。

>>> d = pd.Series([1,2,pd.NA,3])
>>> d
0       1
1       2
2    <NA>
3       3
dtype: object
>>> d.isna()
0    False
1    False
2     True
3    False
dtype: bool

0
投票

只是为了补充 Benji 的答案。要取回您所做的过滤后的系列:-

d[d.isna()]

Output
2    <NA>
dtype: object
© www.soinside.com 2019 - 2024. All rights reserved.