- 查看缺失情况:
dataframe.isnull()
元素级别的判断,把对应的所有元素的位置都列出来,元素为空或者NA就显示True,否则就是False
dataframe.isnull().any()
列级别的判断,只要该列有为空或者NA的元素,就为True,否则False
missing = dataframe.columns[ dataframe.isnull().any() ].tolist()
将为空或者NA的列找出来
dataframe [ missing ].isnull().sum()
将列中为空或者NA的个数统计出来
len(data["feature"] [ pd.isnull(data["feature"]) ]) / len(data))
缺失值比例
-
缺失值处理方法:
总图: -
处理方式
- 直接删除:
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
功能:根据各标签的值中是否存在缺失数据对轴标签进行过滤,可通过阈值调节对缺失值的容忍度
参数:axis : {0 or ‘index’, 1 or ‘columns’},或 tuple/list
how : {‘any’, ‘all’}
any : 如果存在任何NA值,则放弃该标签
all : 如果所有的值都为NA值,则放弃该标签
thresh : int, 默认值 None
int value :要求每排至少N个非NA值
subset : 类似数组
inplace : boolean, 默认值 False
如果为True,则进行操作并返回None。
返回:被删除的DataFrame
** - 常见删除方法:**
new_drop = dataframe.dropna ( axis=0,subset=["Age","Sex"] ) 【在子集中有缺失值,按行删除】
new_drop = dataframe.dropna ( axis=1) 【将dataframe中含有缺失值的所有列删除】