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

如何在df1['Column1']包含df2['Column1']时替换子串为df2['Column2']值

DataFrame子串批量替换实现

需求描述

当df1的Column1字段包含df2的Column1字段内容时,将df1['Column1']中的对应子串替换为df2['Column2']的对应值。

输入数据

df1

Column1
A&O Inc.
HP Canada

df2

Column1Column2
A&OAllen & Overy
HPHewlett Packard

预期输出

Column1
Allen & Overy Inc.
Hewlett Packard Canada

代码实现

使用Pandas的向量化操作完成批量替换,代码如下:

import pandas as pd

# 构造输入数据
df1 = pd.DataFrame({'Column1': ['A&O Inc.', 'HP Canada']})
df2 = pd.DataFrame({'Column1': ['A&O', 'HP'], 'Column2': ['Allen & Overy', 'Hewlett Packard']})

# 创建替换映射字典:键为待替换子串,值为目标替换值
replace_dict = df2.set_index('Column1')['Column2'].to_dict()

# 执行子串替换
df1['Column1'] = df1['Column1'].replace(replace_dict, regex=True)

# 查看结果
print(df1)

关键说明

  • 替换字典构建:通过set_index和to_dict快速将df2转换为符合替换规则的字典,避免手动编写映射关系。
  • 正则替换:regex=True参数让str.replace将字典的键作为子串进行匹配,自动完成所有映射的替换操作,无需逐行循环。
  • 效率优势:向量化操作比传统的行循环处理速度快得多,适合处理大规模数据集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:11:18