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

如何使用映射文件更新Pandas DataFrame,无匹配键值时保留默认值

解决Pandas DataFrame部分值更新(保留未匹配项)的问题

这问题我之前处理类似数据时也碰到过!你要的是只更新匹配映射键的行,不匹配的内容完全保留原样,用Pandas有两种简单的实现方式,我给你详细说明:

方法一:使用replace()(最简洁直接)

replace()方法默认只会替换字典中存在的键对应的数值,不匹配的内容会原封不动保留,完美契合你的需求:

import pandas as pd

# 构建原始DataFrame
df = pd.DataFrame({
    'City': ['Toronto', 'Toronto', 'Vancouver', 'Calgary'],
    'Employer': ["Magna's Automotive", 'Manga', 'Dunder', 'Flames']
})

# 你的映射字典
employer_map = {'Manga':"Magna's Automotive", 'Dunder': 'Dunder Mifflin'}

# 执行更新操作
df['Employer'] = df['Employer'].replace(employer_map)

方法二:map()结合fillna()

如果想更直观地控制替换逻辑,可以先用map()匹配键值(不匹配的会变成NaN),再用fillna()把NaN替换回原始值:

df['Employer'] = df['Employer'].map(employer_map).fillna(df['Employer'])

验证结果

运行任意一种方法后,你的DataFrame都会变成预期的样子:

CityEmployer
TorontoMagna's Automotive
TorontoMagna's Automotive
VancouverDunder Mifflin
CalgaryFlames

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 22:04:07