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

基于字典脚本导入TXT文件 实现DataFrame列指定字符串替换的技术问询

用TXT映射文件替换DataFrame列中的特定字符串

嘿,这个需求我熟,用Pandas配合TXT映射文件就能轻松搞定,分两步走就行,我结合你的咖啡方向DataFrame示例来演示:

第一步:准备你的TXT映射文件

首先你需要把「要替换的旧字符串」和「目标新字符串」整理成一个TXT文件,比如命名为store_replacements.txt,格式建议用分隔符(逗号/制表符)分开每行的旧值和新值,这样方便读取成字典。举个符合你场景的例子:

Starbucks,星爸爸
Tullys,塔利咖啡
Seattles Best,西雅图最佳
Dunkin,唐恩都乐
Daily Dozen,每日十二

注意:如果你的新字符串里包含逗号,就换成制表符(\t)作为分隔符,避免分割出错。

第二步:读取映射文件并批量替换

接下来用Python代码完成读取和替换操作:

1. 读取TXT文件为映射字典

先把TXT里的键值对读成Python字典,这样Pandas能直接用它来替换:

import pandas as pd

# 读取映射文件到字典
store_mapping = {}
with open('store_replacements.txt', 'r', encoding='utf-8') as f:
    for line in f:
        # 去掉换行符,按分隔符分割(这里用逗号,如果你用制表符就换成'\t')
        old_str, new_str = line.strip().split(',', 1)  # split只分1次,避免新字符串里的分隔符干扰
        store_mapping[old_str] = new_str

2. 替换DataFrame的Utterance列

这里分两种场景,按需选择:

场景A:替换所有出现的子串

只要Utterance里包含旧字符串就替换(比如如果有Starbucks Drive-Thru也会把Starbucks换成新值):

coffee_directions_df['Utterance'] = coffee_directions_df['Utterance'].replace(store_mapping, regex=True)

场景B:只替换完整的单词

如果只想替换独立的店名(避免部分匹配),就给映射键加上正则的单词边界\b:

# 构建带单词边界的正则映射
regex_store_mapping = {rf'\b{key}\b': value for key, value in store_mapping.items()}
coffee_directions_df['Utterance'] = coffee_directions_df['Utterance'].replace(regex_store_mapping, regex=True)

替换后的效果示例

比如原来的行:

UtteranceFrequency
Directions to Starbucks1045
Give me directions to Tullys986

会变成(用场景B的话):

UtteranceFrequency
Directions to 星爸爸1045
Give me directions to 塔利咖啡986

额外注意事项

  • 确保TXT文件的编码是utf-8,避免中文乱码;
  • 如果TXT里有重复的旧字符串,后面的条目会覆盖前面的;
  • 如果你的DataFrame很大,replace()方法的效率很高,比循环每行处理快得多。

内容的提问来源于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:55:00