首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有可能用ISO 3166-1 alpha-2国家代码代替ISO 3166-1 alpha-3绘制国家地图?

是否有可能用ISO 3166-1 alpha-2国家代码代替ISO 3166-1 alpha-3绘制国家地图?
EN

Stack Overflow用户
提问于 2016-07-22 09:59:55
回答 2查看 4.6K关注 0票数 3

我最近才开始使用Plotly,并决定让“世界合唱地图”试一试,因为它看起来很简单。我使用的数据集在列中有两位数的国家代码,该列指定被申请人来自哪个国家(例如,巴西为BR,德国为DE,我认为这也称为ISO 3166-1 alpha-2码 )。当我第一次设法运行该文件并将其加载到web浏览器中时,屏幕上没有出现任何地图,这让我感到非常困惑。我查看了示例csv并注意到它使用三位国家代码 (例如,意大利的ITA或瑞典的SWE,它们被称为ISO 3166-1 alpha 3码)。我做了一个小测试集,把三位数的代码应用到我的数据集和地图上,把我输入的所有数据都放在我指定的正确国家内。这让我相信,在默认情况下,choropleth会在数据中查找三位数的国家代码,以便知道数据在地图上的位置。

在我设置一个循环遍历我们接收到的数据并将所有代码从2个字母格式更改为3个字母格式之前,我想知道在中是否有一种简单的方法可以让您指定您想要的国家代码类型?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-03 23:51:00

检查下面的链接,得到从2个字母到3个字母的映射。

list.htm

代码语言:javascript
复制
Countrylet     2let  3let  
Afghanistan    AF    AFG  
Aland Islands  AX    ALA 
代码语言:javascript
复制
dfcountry = pd.read_csv('countryMap.txt',sep='\t') # mapping of 2 letter to 3 letter
代码语言:javascript
复制
    Country  min    avg     max
    AD       5251   5251    5251
代码语言:javascript
复制
dfData = pd.read_csv('myData.txt',sep='\t') # My Source data

df = dfData.merge(dfcountry,how='inner',left_on=['Country'],right_on=['2let'])

现在您可以使用3 Char国家代码。我当时在时间线下所以就采取了一条捷径。希望这能有所帮助。

票数 5
EN

Stack Overflow用户

发布于 2020-05-26 21:35:24

或者您可以使用pycountry-converthttps://pypi.org/project/pycountry-convert/

代码语言:javascript
复制
from pycountry_convert import country_alpha2_to_country_name, country_name_to_country_alpha3

data['country_alpha_3'] = data.country_alpha_2.apply(lambda x: country_name_to_country_alpha3(country_alpha2_to_country_name(x)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38523559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档