如何删除某些列中的值为NaN的Pandas DataFrame行

问题描述:

我有一个 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(.. ..)将返回数据框如下:

Then I just want the records whose EPS is not NaN, that is, df.drop(....) will return the dataframe as below:

                  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'])]