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

如何将DataFrame中的国家名称替换为所属大洲名称?

替换国家名为对应大洲的实现方案

要把DataFrame里的国家名称映射成对应的大洲,最直接的方式是用字典映射结合pandas的map()或replace()方法,我给你写个具体的实现步骤:

1. 构建国家-大洲的映射字典

首先把你数据里出现的所有国家和对应的大洲一一对应起来,针对你给出的数据集,字典可以这样写:

country_to_continent = {
    'Sweden': 'Europe',
    'Africa': 'Africa',  # 要是这里的"Africa"是输入错误(比如本是某个非洲国家),改成对应国家名再映射到'Africa'就行
    'Germany': 'Europe',
    'UK': 'Europe',
    'Pakistan': 'Asia',
    'ZA': 'Africa'  # ZA是南非的ISO代码,对应非洲
}

2. 用map()完成替换

假设你的DataFrame名为problem,Country是存储国家名称的列,执行以下代码可以生成新的大洲列(也可以直接替换原列):

# 生成新的Continent列,保留原Country列
problem['Continent'] = problem['Country'].map(country_to_continent)

# 如果想直接替换原Country列,用这行:
# problem['Country'] = problem['Country'].map(country_to_continent)

3. 处理未匹配的国家(可选)

如果后续数据里出现字典中没有的国家,map()会返回NaN,你可以用fillna()给这些未知值设置默认值:

problem['Continent'] = problem['Country'].map(country_to_continent).fillna('Unknown')

替代方案:用replace()方法

要是你希望未匹配的国家保留原名称,而不是变成NaN,可以用replace():

problem['Continent'] = problem['Country'].replace(country_to_continent)

验证结果

执行完后,用problem.head(30)就能看到替换效果——原来的Sweden会变成Europe,Pakistan变成Asia,ZA变成Africa,完全符合需求。后续如果有更多国家需要映射,只需要扩展country_to_continent字典就行,非常灵活。

内容的提问来源于stack exchange,提问作者Imran Ahmad Ghazali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:58:07