如何批量替换Pandas DataFrame中Country列的国家代码为全称?
批量替换Pandas DataFrame中的国家代码
最简洁高效的方式是先构建国家代码与全称的映射字典,再用Pandas内置方法完成批量替换,以下是两种常用方案:
方案1:使用replace()方法(推荐,自动保留未匹配值)
- 先创建包含所有55个国家对应关系的字典:
country_mapping = { 'ALB': 'Albania', 'CHN': 'China', 'USA': 'United States', # 补充剩余52个国家的代码与全称 }
- 执行批量替换:
df['Country'] = df['Country'].replace(country_mapping)
这个方法会自动替换字典中存在的代码,未在字典里的代码会保持原值,无需额外处理。
方案2:使用map()方法(需处理未匹配值)
如果想用map()实现,可以这样写:
# 替换匹配项,未匹配项会转为NaN df['Country'] = df['Country'].map(country_mapping) # 若要保留未匹配的原代码,加上fillna处理 df['Country'] = df['Country'].map(country_mapping).fillna(df['Country'])
小示例验证
假设你的DataFrame初始结构如下:
import pandas as pd df = pd.DataFrame({'Country': ['ALB', 'CHN', 'XYZ']})
执行replace后,结果会是:
| Country |
|---|
| Albania |
| China |
| XYZ |
内容的提问来源于stack exchange,提问作者code_machine
相关产品推荐
相关产品推荐

