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

使用Pandas将指定列值替换为另一DataFrame对应列值的解决方案

Pandas 邮箱字段高效替换方案

针对超5万行数据的替换需求,推荐使用字典映射的实现方式,避免merge关联带来的性能损耗,实现逻辑如下:

  1. 将存储新邮箱的DataFrame转换为以员工ID为键、新邮箱为值的映射字典
  2. 对主表的员工ID字段执行映射查询,查询不到的结果保留原有邮箱值

完整实现代码

import pandas as pd
# 构造主表(员工基础信息)
data = { 
'emp_id': [111, 222, 333, 444, 555],
'emp_name': ['Sam','Joe','Jake','Rob','Matt'],
'email_id': ['one@gmail.com','two@gmail.com','three@gmail.com','four@gmail.com','five@gmail.com']
}
data = pd.DataFrame(data)
# 构造新邮箱表
data1 = { 
'emp_id': [111, 333, 555],
'email_id': ['one@yahoo.com','three@yahoo.com','five@yahoo.com']
}
data1 = pd.DataFrame(data1)
# 核心替换逻辑
email_mapping = data1.set_index('emp_id')['email_id'].to_dict()
data['email_id'] = data['emp_id'].map(email_mapping).fillna(data['email_id'])
# 输出结果
print(data)

方案优势

  • 字典查找的时间复杂度为O(1),仅需遍历主表1次即可完成全量替换,5万行数据执行耗时通常在10毫秒以内
  • 逻辑简洁易维护,不会产生merge带来的多余字段或索引变动问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:24:03