如何删除某些列的值为NaN的Pandas数据帧行

问题:

我有一个DataFrame

>>> df
                 STK_ID  EPS  cash
STK_ID RPT_Date                   
601166 20111231  601166  NaN   NaN
600036 20111231  600036  NaN    12
600016 20111231  600016  4.3   NaN
601009 20111231  601009  NaN   NaN
601939 20111231  601939  2.5   NaN
000001 20111231  000001  NaN   NaN

然后我只想要EPS不是NaN的记录,也就是df.drop(....)将返回数据框如下:

                  STK_ID  EPS  cash
STK_ID RPT_Date                   
600016 20111231  600016  4.3   NaN
601939 20111231  601939  2.5   NaN

我怎么做?

回答:

不要drop。只要取EPS有限的行

df = df[np.isfinite(df['EPS'])]

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How to drop rows of Pandas dataframe whose value of certain column is NaN

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

1 + 4 =