You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用查找表替换pandas DataFrame中的各类缺失值编码

多类型缺失值统一替换解决方案

实现思路

  • 自定义安全解析函数处理missing_info字段的字符串:无需依赖ast.literal_eval,自动识别列表中的数字、字符串类型缺失标记,避免格式解析报错
  • 构建特征列名与对应缺失值列表的映射字典
  • 用pandas原生矢量化替换方法逐列处理,适配大表的高性能要求

完整代码

import pandas as pd
import numpy as np

def parse_missing_info(missing_str):
    # 去除首尾方括号
    content = missing_str.strip('[]')
    # 空列表直接返回
    if not content.strip():
        return []
    # 拆分所有缺失标记并去除空白
    items = [i.strip() for i in content.split(',')]
    parsed_list = []
    for item in items:
        # 识别整数类型标记
        if item.lstrip('-').isdigit():
            parsed_list.append(int(item))
        # 其他类型直接按字符串处理
        else:
            parsed_list.append(item)
    return parsed_list

# 构建特征缺失值映射
feature_missing_map = dict(zip(
    feature_info['feature'],
    feature_info['missing_info'].apply(parse_missing_info)
))

# 遍历列替换缺失值,可根据需要将pd.NA替换为np.nan等自定义标记
for col, missing_vals in feature_missing_map.items():
    if col in df.columns:
        df[col] = df[col].replace(missing_vals, pd.NA)

方案适配性说明

  • 兼容数字、字符串等任意数据类型的自定义缺失值标记
  • 不会修改原数据中非缺失的正常值
  • 针对大规模DataFrame做了优化,替换操作基于pandas矢量化实现,远快于逐行判断逻辑

内容的提问来源于stack exchange,提问作者timpanister

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:18:03