刪除缺失值

在建立 DataFrame 時,None(python 的缺失值)被轉換為 NaN(pandas 的缺失值):

In [11]: df = pd.DataFrame([[1, 2, None, 3], [4, None, 5, 6], 
                            [7, 8, 9, 10], [None, None, None, None]])

Out[11]: 
     0    1    2     3
0  1.0  2.0  NaN   3.0
1  4.0  NaN  5.0   6.0
2  7.0  8.0  9.0  10.0
3  NaN  NaN  NaN   NaN

如果至少一列具有缺失值,則刪除行

In [12]: df.dropna()
Out[12]:
     0    1    2     3
2  7.0  8.0  9.0  10.0

這將返回一個新的 DataFrame。如果要更改原始 DataFrame,請使用 inplace 引數(df.dropna(inplace=True))或將其分配回原始 DataFrame(df = df.dropna())。

如果缺少該行中的所有值,則刪除行

In [13]: df.dropna(how='all')
Out[13]: 
     0    1    2     3
0  1.0  2.0  NaN   3.0
1  4.0  NaN  5.0   6.0
2  7.0  8.0  9.0  10.0

放下不具有至少 3 個非缺失值

In [14]: df.dropna(axis=1, thresh=3)
Out[14]: 
     0     3
0  1.0   3.0
1  4.0   6.0
2  7.0  10.0
3  NaN   NaN