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

如何通过导入TXT文件替换Pandas DataFrame中的指定字符串?

嘿,这事儿不难,我帮你捋清楚怎么用TXT文件里的规则替换DataFrame列中的指定字符串,咱们一步步来:

步骤1:先准备好你的替换规则TXT文件

首先得把要替换的“旧字符串→新字符串”规则写到TXT里,建议用一个不会出现在字符串里的分隔符(比如|)把新旧字符串分开,每行一条规则。针对你的咖啡品牌场景,规则可以这么写:

Starbucks|星巴克
Tullys|塔利咖啡
Seattles Best|西雅图最佳咖啡
Dunkin|唐恩都乐
Daily Dozen|每日十二咖啡
把这个文件存成replace_rules.txt就行。

步骤2:读取TXT文件生成替换字典

接下来用Python读取这个TXT,把规则转成pandas能识别的字典格式:

# 初始化空字典存储替换规则
replace_mapping = {}

# 读取TXT文件
with open('replace_rules.txt', 'r', encoding='utf-8') as rule_file:
    for line in rule_file:
        # 跳过空行,避免报错
        cleaned_line = line.strip()
        if not cleaned_line:
            continue
        # 按分隔符拆分新旧字符串
        old_str, new_str = cleaned_line.split('|')
        replace_mapping[old_str] = new_str
步骤3:对DataFrame的Utterance列执行替换

现在直接用pandas的replace方法就能批量替换了。这里要注意两个场景:

  • 如果是要替换字符串里的子串(比如把“Directions to Starbucks”里的Starbucks换成星巴克),记得加上regex=True参数;
  • 如果是要完全匹配整行的Utterance值,去掉这个参数就行。

代码示例:

import pandas as pd

# 假设你的coffee_directions_df已经加载好了
coffee_directions_df['Utterance'] = coffee_directions_df['Utterance'].replace(replace_mapping, regex=True)

# 看看替换后的效果
print(coffee_directions_df[['Utterance', 'Frequency']].head())
一些实用小提醒
  • 如果你的TXT用了其他分隔符(比如逗号),记得把split('|')改成对应的split(','),但要确保字符串里不会出现这个分隔符,不然会拆分出错——要是怕这个,也可以用csv模块来读取更稳妥。
  • 要是需要忽略大小写匹配(比如把“starbucks”和“Starbucks”都替换),可以用下面的按单词匹配逻辑:
# 忽略大小写的替换示例
coffee_directions_df['Utterance'] = coffee_directions_df['Utterance'].apply(
    lambda x: ' '.join([replace_mapping.get(word.lower(), word) for word in x.split()])
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:49:05