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

如何在Python中批量替换DataFrame列中的缩写(如NY→New York)

Pandas批量替换DataFrame列中的缩写为全称的正确方法

核心解决思路

不用多次单独调用单值替换,直接给replace()方法传入键值对映射字典,就能一次性完成所有缩写到全称的替换。

具体实现步骤

  1. 定义替换映射字典
    把需要替换的所有缩写和对应的全称整理成字典:

    state_mapping = {
        'NY': 'New York',
        'US': 'United States',
        'CA': 'California',
        'TX': 'Texas'
    }
    
  2. 批量替换的两种写法

    • 写法一(沿用你习惯的inplace模式):

      df['prod_state'].replace(state_mapping, inplace=True)
      

      直接将字典传入replace(),Pandas会自动遍历prod_state列,匹配字典中的键并替换为对应全称。

    • 写法二(更推荐,避免修改原DataFrame):

      df['prod_state'] = df['prod_state'].replace(state_mapping)
      

      这种方式返回替换后的Series,重新赋值给原列,能保留原始数据的副本,降低误操作风险。

常见问题提示

  • 替换默认是精确匹配,如果列中的缩写存在大小写不一致(比如ny而非NY),可以添加regex=True并使用正则匹配,例如:
    state_mapping = {
        r'^NY$': 'New York',
        r'^US$': 'United States'
    }
    df['prod_state'] = df['prod_state'].replace(state_mapping, regex=True)
    
  • 之前批量替换出错,大概率是因为错误地传入多组单值参数(而非字典),比如replace('NY','New York','US','United States'),这种写法不符合replace()的参数规范。

内容的提问来源于stack exchange,提问作者Jessica Chizoba Nkwa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:25:34