我正在尝试返回包含NaN
的所有column == years_exp
值的df,以便我可以识别相应的id.thomas
(基本上我正在调试一些数据,我手工解析)。我还需要返回一个包含所有min
值的df。这是我到目前为止所尝试的:
rr.head(5)
years id.thomas years_exp
55 2005 2 17
56 2006 2 18
57 2007 2 19
58 2008 2 20
59 2009 2 21
c = rr
c = c[c.years_exp == 'NaN']
错误:
TypeError:无效的类型比较
我正在使用从Pandas上的YouTube视频复制的语法。有没有人对错误有所了解?
答案 0 :(得分:4)
您需要isnull
来检查NaN
值:
print (rr[rr.years_exp.isnull()])
Docs:
警告强>
必须注意的是,在python(和numpy)中,nan并不比较平等,但是没有。请注意,Pandas / numpy使用np.nan!= np.nan的事实,并像np.nan一样对待None。
In [11]: None == None
Out[11]: True
In [12]: np.nan == np.nan
Out[12]: False
因此,与上述相比,标量相等比较与None / np.nan无法提供有用的信息。
In [13]: df2['one'] == np.nan
Out[13]:
a False
b False
c False
d False
e False
f False
g False
h False
Name: one, dtype: bool
答案 1 :(得分:2)
您可以尝试使用
c = c.loc[c.years_exp == 'NaN']
或
c = c.loc[c.years_exp == None]
或
c = c.loc[c.years_exp.isnull()]