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

如何使用替换字典在DataFrame中替换多个子字符串

解决方案

方法1:利用Pandas内置替换功能(简洁高效)

直接定义替换映射字典,借助pandas.Series.replace的正则模式批量完成替换:

import pandas as pd

# 初始化DataFrame
df = pd.DataFrame({'col': ['[A]', '[A][B]', '[A][B][C]', '[A] [D]', '[D]', '[D][B]', '[D][B][C]', '[D][B][C][E]', '[F]', '[G]', '[H]']})

# 字符替换映射
replace_map = {
    r'A': 'M', r'B': 'Z', r'C': 'P', r'D': 'Q',
    r'E': 'L', r'F': 'V', r'G': 'S', r'H': 'R'
}

# 执行替换,开启正则模式
df['col'] = df['col'].replace(replace_map, regex=True)

# 输出结果
print(df)

执行后输出:

col
0        [M]
1      [M][Z]
2    [M][Z][P]
3      [M] [Q]
4        [Q]
5      [Q][Z]
6    [Q][Z][P]
7  [Q][Z][P][L]
8        [V]
9        [S]
10       [R]

方法2:结合正则模块自定义替换逻辑(灵活扩展)

如果需要添加额外判断逻辑,可使用re.sub配合自定义替换函数:

import pandas as pd
import re

df = pd.DataFrame({'col': ['[A]', '[A][B]', '[A][B][C]', '[A] [D]', '[D]', '[D][B]', '[D][B][C]', '[D][B][C][E]', '[F]', '[G]', '[H]']})

# 替换字典
replace_dict = {
    'A': 'M', 'B': 'Z', 'C': 'P', 'D': 'Q',
    'E': 'L', 'F': 'V', 'G': 'S', 'H': 'R'
}

# 自定义匹配替换函数
def replace_char(match):
    return replace_dict.get(match.group(), match.group())

# 对每一行应用正则替换
df['col'] = df['col'].apply(lambda x: re.sub(r'[A-H]', replace_char, x))

print(df)

此方法通过正则匹配A-H范围内的字符,再通过函数返回对应替换值,结果与方法1完全一致。

注意事项

  • 两种方法均会保留原字符串中的方括号、空格等格式,仅替换目标字符
  • 方法1适合静态批量替换,代码更简洁;方法2适合需要额外逻辑(比如判断字符出现次数、上下文)的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:17:48