删除缺失值
在创建 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