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

如何编写def函数通过字典映射替换DataFrame列值且不直接引用列名?

基于映射字典实现DataFrame列值批量替换

实现思路

遍历parsing_map字典中的键值对,自动获取目标列名和对应的替换规则,无需硬编码列名,实现通用的列值替换逻辑。

完整代码实现

import pandas as pd

def map_column_values(df, parsing_map):
    # 复制原DataFrame,避免修改原始数据
    processed_df = df.copy()
    # 遍历映射规则,处理每一列
    for col, replace_rules in parsing_map.items():
        processed_df[col] = processed_df[col].replace(replace_rules)
    return processed_df

# 测试代码
if __name__ == "__main__":
    data = [["English"], ["French"], ["Spanish"]]
    df = pd.DataFrame(data, columns=['Communication_Language__c'])

    lang = {"English": "ENG", "French": "FR"}
    parsing_map = {"Communication_Language__c": lang}

    # 调用函数处理数据
    result_df = map_column_values(df, parsing_map)
    print(result_df)

代码说明

  • 函数map_column_values接收两个核心参数:待处理的df和定义替换规则的parsing_map
  • 先复制原DataFrame,保证原始数据不受修改(若需要原地修改,可改为processed_df[col].replace(replace_rules, inplace=True)并去掉返回值)
  • 遍历parsing_map时,col自动对应目标列名(比如Communication_Language__c),replace_rules对应该列的替换字典(比如lang)
  • pandas的replace方法会自动匹配列中与字典键一致的值,替换为对应的值,未匹配的值保持原样

运行输出

Communication_Language__c
0                       ENG
1                        FR
2                    Spanish

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:05:23