一、缺失值处理
1. 查找缺失值
df.isnull()
:判断哪些元素有缺失值
df.isnull().any()
:判断哪些列有至少有一个缺失值,.any(axis=1)
判断行
df.isnull().all()
:判断哪些列全部都缺失值,.all(axis=1)
判断行
2. pandas处理缺失值
丢弃
df.dropna()
:直接丢弃含有缺失值的列,axis=1
丢弃行
填充
df.fillna(
value=None,
method=None,
axis=None,
inplace=False,
limit=None,
downcast=None,
)
- value:用来填充的内容
- 一个指定的值
- dict/Series/DataFrame:用序列中各列对应的值来填充对应列中的缺失值,如:
{'col1':1,'col2':2}
- 函数:
df.fillna(df.mean())
用平均值来填充,也可以是max()
、min()
等
- method:
{'backfill', 'bfill', 'pad', 'ffill', None}
- backfill/bfill:用后面的值填充
- pad/ffill:用前面的值填充
- limit:如果存在连续的缺失值,限制只填充指定数量的缺失值
- axis:0-列,1-行
3. sklearn处理缺失值
# 创建模型规则:用平均值填充
nan_model=SimpleImputer(missing_values=np.nan,strategy=