文章目录(Table of Contents)
简介
在正式讲内容之前, 我们首先介绍一下什么是每个国家的三位字母, 这个是是国际标准化组织ISO 3166标准第一部分ISO 3166-1的三位字母表示方式, 旨在为国家、属地、具特殊科学价值地点建立国际认可的代码. 其实讲了这么多就是每个国家会有一个三个字母的表示, 我们看一下下面的例子, 内容来源: ISO 3166-1三位字母代码
接下来讲一下我为什么会要用到这个, 因为在有一个数据分析的作业里面, 需要绘制每个国家人口的增长, 我就想使用Plotly来进行绘制. 但是不巧的是, 使用Plotly是需要接收ISO 3166-1三位字母代码的. 所以我们要先做一次转换, 比如我们要将China转换为CHN, 然后我就找到了country-converter这个库.
关于更多的内容, 可以参考下面的这个网站. country-converter库官网: Python country-converter
还要一个库也是有相似的功能, pycountry, 我把链接放在这里: Pycountry
简单使用介绍
国家名与代号转换
首先最基本的功能也就是国家名与代号之间的相互转换. 我们看一下下面的简单的例子即可.
- import country_converter as coco
- coco.convert('CHN', to='name_short')
最终的结果如下所示:
国家名与大洲的转换
除了上面国家名称与国家代号之间的转换, 我们还可以查询国家所在的大洲, 只需要修改上面to后面的内容即可.
- coco.convert('China',to='continent')
对于异常值的处理
当我们对不存在的国家进行转换的时候, 会出现warning, 默认是会返回not found, 但是我们也是可以进行自定义返回的内容, 使用not_found='X'即可进行自定义.
进一步了解country-converter
这里我们进一步了解一下这个库的内部, 他其实是将所有的内容存储为dataframe中去, 我们可以通过下面的方式来查看他存储的内容.
- cc = coco.CountryConverter()
- cc.data
我们可以看到输出结果就是dataframe的格式.
最后, 所有可以使用的属性, 我们可以通过cc.valid_class来进行查看, 一共有下面这么多的种类.
- 'APEC', 'BASIC', 'BRIC', 'CIS'
- 'Cecilia2050', 'EU', 'EURO', 'EXIO1'
- 'EXIO2', 'EXIO3', 'Eora', 'G20', 'G7'
- 'ISO2', 'ISO3', 'ISOnumeric', 'MESSAGE'
- 'OECD', 'UNcode', 'UNmember', 'UNregion'
- 'WIOD', 'continent', 'name_official'
- 'name_short', 'obsolete', 'regex'
- 微信公众号
- 关注微信公众号
- QQ群
- 我们的QQ群号
评论