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

Python中如何基于字典替换Pandas DataFrame列值?

更优实现方案

你原来的循环写法不仅不够简洁,还存在逻辑问题:pandas.Series.replace() 默认不修改原序列,你没有接收返回值的话,运行完原表不会发生任何改动;而且多次循环全列替换的性能会随数据量上涨明显变差。

最简洁高效的做法是先把现有字典结构反转成「国家代码为键、对应大洲为值」的正向映射字典,再单次调用替换方法完成全部转换,代码如下:

# 反转原有字典结构,生成 国家代码:大洲 的直接映射
code_map = {code: continent for continent, code_list in country_dict.items() for code in code_list}

# 单次完成全列替换,未匹配到的代码会原样保留
df['Country'] = df['Country'].replace(code_map)

方案优势

  • 仅需一次列扫描就完成全部替换,数据量越大性能优势越明显
  • 代码逻辑清晰,扁平化后的映射字典可以复用于其他匹配场景,不需要每次都遍历原嵌套结构
  • 不需要写循环逻辑,代码更简洁易维护

如果你希望未匹配到的国家代码显示为空值而不是保留原内容,把replace换成map即可:

df['Country'] = df['Country'].map(code_map)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:33:18