本篇详解pandas中缺失值(Missing data handling)处理常用操作。
缺失值处理常用于数据分析数据清洗阶段;Pandas中将如下类型定义为缺失值:
NaN: ‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’,
‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘’, ‘N/A’, ‘NA’,
‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’,None
欢迎微信随缘关注@pythonic生物人
本文将学到什么?
1
更好的阅读体验请戳:Pandas处理缺失值(NA)
1、pandas中缺失值注意事项
pandas和numpy中任意两个缺失值不相等(np.nan != np.nan)
下图中两个NaN不相等:
In
pandas读取文件时那些值被视为缺失值
NaN: ‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’,‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘<NA>’, ‘N/A’, ‘NA’,‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’,None
2、pandas缺失值操作
pandas.DataFrame中判断那些值是缺失值:isna方法
#定义一个实验DataFrame
pandas.DataFrame中删除包含缺失值的行:dropna(axis=0)
In
pandas.DataFrame中删除包含缺失值的列:dropna(axis=1)
In
pandas.DataFrame中删除包含缺失值的列和行:dropna(how='any')
In
pandas.DataFrame中删除全是缺失值的行:dropna(axis=0,how='all')
In
pandas.DataFrame中删除全是缺失值的列:dropna(axis=1,how='all')
In
pandas.DataFrame中使用某个值填充缺失值:fillna(某个值)
In
pandas.DataFrame中使用前一列的值填充缺失值:fillna(axis=1,method='ffill')
#后一列填充为fillna(axis=1,method=bfill')
pandas.DataFrame中使用前一行的值填充缺失值:fillna(axis=0,method='ffill')
#后一行填充为fillna(axis=1,method=bfill')
pandas.DataFrame中使用字典传值填充指定列的缺失值
In
3、参考资料
https://pandas.pydata.org/pandas-docs/stable/reference/frame.html?highlight=missing
欢迎微信随缘关注@pythonic生物人