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

如何用Python替换DataFrame值?Pandas新版本替换脚本失效求助

解决Pandas DataFrame指定值替换失效问题

问题原因

你当前的代码错误在于:

  • 开启regex=True的同时,直接将替换字典传给to_replace,这在新版Pandas中不支持该格式的正则替换逻辑
  • 实际你仅需对Type列做精确值替换,完全不需要启用正则匹配

修正方案

方案1:针对目标列精确替换(推荐)

直接对Type列调用replace方法,传入替换字典即可,无需正则:

import pandas as pd
df = pd.DataFrame([
    {"Type":"R_NEW","Name":"Rani","Status":"CHANGE"},
    {"Type":"R_Change","Name":"Venu","Status":"WAIT"},
    {"Type":"PREORDER","Name":"Kiran","Status":"WAIT"}
])

# 仅替换Type列的指定值
df['Type'] = df['Type'].replace({
    'R_NEW': 'N', 
    'R_Change': 'C', 
    'RSD_MOVE': 'M', 
    'PREORDER': 'P'
})

print(df)

方案2:全局指定列替换(适用于多列替换场景)

如果需要同时对多列执行替换规则,可以用嵌套字典指定列与对应替换逻辑,此时无需开启regex=True:

df.replace(
    to_replace={
        'Type': {'R_NEW': 'N', 'R_Change': 'C', 'RSD_MOVE': 'M', 'PREORDER': 'P'}
    },
    inplace=True
)

运行结果

执行修正后的代码,输出与预期一致:

Type   Name  Status
0    N   Rani  CHANGE
1    C   Venu    WAIT
2    P  Kiran    WAIT

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 22:57:34