python缺失值处理方法大全
在Python中,处理缺失值通常使用pandas
库中的DataFrame
和Series
对象。以下是一些处理缺失值的常用方法:
- 删除包含缺失值的行或列:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, None, 4], 'B': [5, None, 7, 8]})
df.dropna(axis=0, how='any') # 删除包含任何NaN值的行
df.dropna(axis=1, how='any') # 删除包含任何NaN值的列
- 填充缺失值:
df.fillna(0) # 用0填充所有NaN值
df.fillna({'A': 0, 'B': 1}) # 对于不同列,用不同的值填充
df.fillna(method='ffill') # 使用前一个非缺失值填充
df.fillna(method='bfill') # 使用后一个非缺失值填充
df.fillna(method='pad', limit=1) # 使用前一个值填充,限制填充次数
- 标记缺失值:
df.isnull() # 生成布尔DataFrame,表示对应位置是否为NaN
df.notnull() # 生成布尔DataFrame,表示对应位置是否不为NaN
- 应用函数处理缺失值:
def fill_func(x):
if pd.isna(x):
return 'missing'
else:
return x
df.apply(fill_func) # 应用自定义函数处理每个值
- 使用插补法进行插值:
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
imputer.fit([[1], [2], [np.nan], [4]])
imputer.transform([[1], [2], [np.nan], [4]]) # 使用均值填充缺失值
这些是处理缺失值的常用方法,具体使用哪种取决于数据的特性和应用场景。
评论已关闭