熊猫:返回NaN行

时间:2016-04-20 13:48:55

标签: python pandas dataframe ipython

我正在尝试返回包含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视频复制的语法。有没有人对错误有所了解?

2 个答案:

答案 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()]