如何在Python中整合不同缺失值填充方法?代码优化咨询
优化缺失值填充代码的简洁实现方式
你当前的缺失值填充代码如下:
mean_impute = df['column'].fillna(value=df['column'].mean()) median_impute = df['column'].fillna(value=df['column'].median()) mode_impute = df['column'].fillna(value=df['column'].mode())
当然可以通过循环或函数简化这段重复代码,以下是两种实用的优化方案:
方案一:用循环批量处理
把填充方法和对应规则存入字典,通过循环完成所有填充操作,还能方便后续扩展更多填充方式:
# 定义填充规则映射,注意mode返回Series,取第一个值避免维度问题 impute_rules = { 'mean': df['column'].mean(), 'median': df['column'].median(), 'mode': df['column'].mode()[0] } # 循环执行填充并存储结果 impute_results = {} for method_name, fill_value in impute_rules.items(): impute_results[f'{method_name}_impute'] = df['column'].fillna(value=fill_value) # 按需调用结果,比如 mean_impute = impute_results['mean_impute']
方案二:封装成可复用函数
如果需要对不同列执行这类填充,封装成函数能大幅提升复用性:
def impute_missing(df_column): """对指定DataFrame列执行多种缺失值填充,返回结果字典""" return { 'mean_impute': df_column.fillna(df_column.mean()), 'median_impute': df_column.fillna(df_column.median()), 'mode_impute': df_column.fillna(df_column.mode()[0]) } # 调用函数 results = impute_missing(df['column']) # 提取结果:median_impute = results['median_impute']
内容的提问来源于stack exchange,提问作者Armando Bridena
相关产品推荐
相关产品推荐

