在Python中处理空值(缺失值)的常见方法包括使用Pandas库的`fillna()`函数,以及使用其他第三方库如`impyute`和`fancyimpute`。以下是使用Pandas进行空值填充的一些示例:
使用Pandas的`fillna()`函数
import pandas as pdimport numpy as np创建一个带空值的数据data = {'成绩': [85, np.nan, 92, np.nan, 78, 88]}df = pd.DataFrame(data)用平均值填充df['成绩_均值填充'] = df['成绩'].fillna(df['成绩'].mean())用固定值填充df['成绩_固定值填充'] = df['成绩'].fillna(0)print(df)
使用`dropna()`删除缺失值
import pandas as pdimport numpy as np创建测试数据data = {'姓名': ['小明', '小红', '小张', '小李', '小王'], '语文': [85, 92, np.nan, 78, 88], '数学': [92, 88, 76, np.nan, 85]}df = pd.DataFrame(data)删除包含空值的行df_clean = df.dropna()print(df_clean)
使用`impyute`和`fancyimpute`进行空值填充
import pandas as pdimport numpy as npfrom impyute.impute import SimpleImputerfrom fancyimpute import KNNImputer创建一个带空值的数据data = {'A': [1, 2, None, 4, 5], 'B': [2, 4, None, 3, 2]}df = pd.DataFrame(data)使用SimpleImputer填充空值imputer = SimpleImputer(strategy='mean')df_filled = imputer.fit_transform(df)df_filled = pd.DataFrame(df_filled, columns=df.columns)使用KNNImputer填充空值imputer = KNNImputer(n_neighbors=2)df_filled = imputer.fit_transform(df)df_filled = pd.DataFrame(df_filled, columns=df.columns)print(df_filled)
使用`fillna()`的其他方法
使用指定值填充:
df['成绩'] = df['成绩'].fillna(0) 用0填充空值
使用前一个值填充(前向填充):
df['成绩'] = df['成绩'].fillna(method='ffill')
使用后一个值填充(后向填充):
df['成绩'] = df['成绩'].fillna(method='bfill')
使用插值法填充:
df['成绩'] = df['成绩'].interpolate()
选择填充方法时,应根据实际的数据场景和需求来决定,例如在处理时间序列数据时,使用前一个值填充可能更合理。

