国家名与三位字母代码转换

王 茂南 2020年3月24日07:49:23
评论
1203字阅读4分0秒
摘要这一篇主要介绍一个可以将国家名称, 国家代码, 国家所属的大洲相互转换的工具. 介绍他的简单使用和对于异常处理的用法, 以及他的内部简单原理.

简介

在正式讲内容之前, 我们首先介绍一下什么是每个国家的三位字母, 这个是是国际标准化组织ISO 3166标准第一部分ISO 3166-1的三位字母表示方式, 旨在为国家、属地、具特殊科学价值地点建立国际认可的代码. 其实讲了这么多就是每个国家会有一个三个字母的表示, 我们看一下下面的例子, 内容来源: ISO 3166-1三位字母代码

国家名与三位字母代码转换

接下来讲一下我为什么会要用到这个, 因为在有一个数据分析的作业里面, 需要绘制每个国家人口的增长, 我就想使用Plotly来进行绘制. 但是不巧的是, 使用Plotly是需要接收ISO 3166-1三位字母代码的. 所以我们要先做一次转换, 比如我们要将China转换为CHN, 然后我就找到了country-converter这个库.

关于更多的内容, 可以参考下面的这个网站. country-converter库官网Python country-converter

还要一个库也是有相似的功能, pycountry, 我把链接放在这里: Pycountry

 

简单使用介绍

国家名与代号转换

首先最基本的功能也就是国家名与代号之间的相互转换. 我们看一下下面的简单的例子即可.

  1. import country_converter as coco
  2. coco.convert('CHN', to='name_short')

最终的结果如下所示:

国家名与三位字母代码转换

 

国家名与大洲的转换

除了上面国家名称与国家代号之间的转换, 我们还可以查询国家所在的大洲, 只需要修改上面to后面的内容即可.

  1. coco.convert('China',to='continent')
国家名与三位字母代码转换

 

对于异常值的处理

当我们对不存在的国家进行转换的时候, 会出现warning, 默认是会返回not found, 但是我们也是可以进行自定义返回的内容, 使用not_found='X'即可进行自定义.

国家名与三位字母代码转换

 

进一步了解country-converter

这里我们进一步了解一下这个库的内部, 他其实是将所有的内容存储为dataframe中去, 我们可以通过下面的方式来查看他存储的内容.

  1. cc = coco.CountryConverter()
  2. cc.data

我们可以看到输出结果就是dataframe的格式.

国家名与三位字母代码转换

最后, 所有可以使用的属性, 我们可以通过cc.valid_class来进行查看, 一共有下面这么多的种类.

  1. 'APEC', 'BASIC', 'BRIC', 'CIS'
  2. 'Cecilia2050', 'EU', 'EURO', 'EXIO1'
  3. 'EXIO2', 'EXIO3', 'Eora', 'G20', 'G7'
  4. 'ISO2', 'ISO3', 'ISOnumeric', 'MESSAGE'
  5. 'OECD', 'UNcode', 'UNmember', 'UNregion'
  6. 'WIOD', 'continent', 'name_official'
  7. 'name_short', 'obsolete', 'regex'

 

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南
  • 本文由 发表于 2020年3月24日07:49:23
  • 转载请务必保留本文链接:https://mathpretty.com/11923.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: