项目描述

国家转换器 (coco) 是一个 Python 包,可在不同的分类和不同的命名版本之间转换和匹配国家名称。在内部,它使用常规的表达方式来匹配国家名称。可可还可用于在不同的分类方案之间构建聚合和谐矩阵。

内容表

  • 动机
  • 安装
  • 用法
    • 基本使用

      • 在 Python 内使用
      • 在命令行中使用
      • 在Matlab中使用
    • 为国家聚合构建和谐
  • 分类方案
  • 数据源和进一步阅读
  • 沟通、问题、错误和增强功能
  • 贡献
  • 相关软件
  • 引用国家转换器
  • 确认

作用

迄今为止,在(元)数据描述中,没有关于如何命名或指定个别国家单一标准。虽然某些数据源遵循 ISO 3166,但此标准除数字分类外,还定义了 2 个字母和 3 个字母的代码。使问题更加复杂的是,许多数据库没有使用现有标准之一,而是使用不合标准的国家名称对国家进行分类。

国家转换器(可可)自动转换从不同的标准和版本的国家名称。在内部,Coco 基于一张表格,其中指定了每个国家/地区不同的 ISO 和 UN 标准,以及官方名称和常规表达方式,旨在匹配特定国家名称的所有英文版本。此外,可可还包括基于联合国、欧盟、经合组织成员国、联合国区域规格、大陆以及各种MRIO和IAM数据库的分类(见下文的分类方案)。

安装

Country_converter在 Pypi 注册。从命令行:

pip install country_converter --upgrade

国家转换器也可以从conda,可以安装使用conda(如果你没有conda_forge通道添加到您的康达配置添加"-cconda",请参阅此处的安装说明):

conda install country_converter

或者,源代码可在GitHub上找到。

包裹取决于pandas库:测试测试是必需的。有关运行测试的更多信息,请参阅贡献.rst。

用法

基本使用

在 Python 内使用

将各种国名转换为某些标准名称:

import country_converter as coco
some_names = ['United Rep. of Tanzania', 'DE', 'Cape Verde', '788', 'Burma', 'COG','Iran (Islamic Republic of)', 'Korea, Republic of',"Dem. People's Rep. of Korea"]
standard_names = coco.convert(names=some_names, to='name_short')
print(standard_names)

这导致[坦桑尼亚’,德国’,‘佛得角’,‘突尼斯’,‘缅甸’,‘刚果共和国’,‘伊朗’,‘韩国’,‘朝鲜’。输入格式根据 ISO 二个字母、ISO 三个字母、ISO 数字或常规表达匹配自动确定。如果有任何模糊性,可以用参数"src"指定源格式。

在多次转换的情况下,可以通过为所有转换对单个国家转换对象进行实例化来实现更好的性能:

import country_converter as coco
cc = coco.CountryConverter()some_names = ['United Rep. of Tanzania', 'Cape Verde', 'Burma','Iran (Islamic Republic of)', 'Korea, Republic of',"Dem. People's Rep. of Korea"]standard_names = cc.convert(names = some_names, to = 'name_short')
UNmembership = cc.convert(names = some_names, to = 'UNmember')
print(standard_names)
print(UNmembership)

分类方案之间的转换:

iso3_codes = ['USA', 'VUT', 'TKL', 'AUT', 'XXX' ]
iso2_codes = coco.convert(names=iso3_codes, to='ISO2')
print(iso2_codes)

这导致 [美国’, ‘Vu’, ‘Tk’, ‘AT’, ‘找不到’

未找到的指示可以指定(例如,not_found = “不存在”),如果"not_found"未通过,则原始条目将通过:

iso2_codes = coco.convert(names=iso3_codes, to='ISO2', not_found=None)
print(iso2_codes)

结果在 [‘美国’, ‘VU’, ‘Tk’, ‘AT’, ‘XX’

内部数据存储在pandas数据帧中,可直接访问。例如,这可用于筛选成员国组织的国家(每年)。注意:为此,需要一个"国家转换器"实例。

import country_converter as coco
cc = coco.CountryConverter()some_countries = ['Australia', 'Belgium', 'Brazil', 'Bulgaria', 'Cyprus', 'Czech Republic','Denmark', 'Estonia', 'Finland', 'France', 'Germany', 'Greece', 'Hungary','India', 'Indonesia', 'Ireland', 'Italy', 'Japan', 'Latvia', 'Lithuania','Luxembourg', 'Malta', 'Romania', 'Russia', 'Turkey', 'United Kingdom','United States']oecd_since_1995 = cc.data[(cc.data.OECD >= 1995) & cc.data.name_short.isin(some_countries)].name_short
eu_until_1980 = cc.data[(cc.data.EU <= 1980) & cc.data.name_short.isin(some_countries)].name_short
print(oecd_since_1995)
print(eu_until_1980)

所有分类均可通过:

cc.EU28
cc.OECDcc.EU27as('ISO3')

以及可用的分类方案:

cc.valid_class

还有一个甲型腺,只得到国家分类(因此省略了任何国家集团):

cc.valid_country_classifications

如果您更需要一本描述分类/会员使用的字典:

import country_converter as coco
cc = coco.CountryConverter()
cc.get_correspondence_dict('EXIO3', 'ISO3')

还包括未在特定分类使用中分配的国家:

cc.get_correspondence_dict('EU27', 'ISO2', replace_nan='NonEU')

常规表达式还可用于将任何国家列表与任何其他国家列表匹配。例如:

match_these = ['norway', 'united_states', 'china', 'taiwan']
master_list = ['USA', 'The Swedish Kingdom', 'Norway is a Kingdom too','Peoples Republic of China', 'Republic of China' ]matching_dict = coco.match(match_these, master_list)

默认情况下,如果找不到匹配项,则国家转换器会向巨蛇记录记录器发出警告。以下示例演示了如何配置可可伐木行为。

import logging
import country_converter as coco
logging.basicConfig(level=logging.INFO)
coco.convert("asdf")
# WARNING:country_converter.country_converter:asdf not found in regex
# Out: 'not found'coco_logger = coco.logging.getLogger()
coco_logger.setLevel(logging.CRITICAL)
coco.convert("asdf")
# Out: 'not found'

有关更多信息,请参阅 IPython 笔记本(country_converter_examples.ipynb)。

命令线使用

国家转换器包还提供了一个称为 coco 的指挥线接口。

最小示例:

coco Cyprus DE Denmark Estonia 4 'United Kingdom' AUT

根据将输入与 ISO2、ISO3、ISonumeric 或常规表达匹配匹配的输入,将给定名称转换为 ISO3 代码。名称列表必须按空格划分,由多个单词组成的国名必须放在引号中(’)。

输入分类可以用"src"或"-s"(或将自动确定)、目标分类(“到"或”-t")来指定。

默认输出是一个空间分离列表,可以通过"+output_sep"或"-o"(例如 -o"|")通过分离器来更改。

因此,要从 ISO3 转换为 UN 编号代码,并接收输出作为逗号分离列表使用:

coco AUT DEU VAT AUS -s ISO3 -t UNcode -o ', '

命令线工具还允许指定未找到条目的输出,包括通过"无"将其传递到输出:

coco CAN Peru US Mexico Venezuela UK Arendelle --not_found=None

并指定一个额外的数据文件,这将覆盖现有的国家匹配

coco Congo --additional_data path/to/datafile.csv

请参阅 https://github.com/konstantinstadler/country_converter/tree/master/tests/custom_data_example.txt,了解其他数据文件示例。

旗帜UNmember_only(-u)和include_obsolete(-i)仅将搜索限制在联合国会员国,或将其扩展到还包括目前过时的国家。例如,荷属安的列斯群岛于2010年解散。

因此:

coco "Netherlands Antilles"

导致"未找到"。但是,搜索范围可扩展到最近解散的国家::

coco "Netherlands Antilles" -i

这导致了 “蚂蚁” 。

除这些国家外,可可指挥线工具还接受各种国家分类(EXIO1、EXIO2、EXIO3、WIOD、Eora、MESSAGE、OECD、EU27、EU28、UN、过时、塞西莉亚2050、金砖四国、APEC、基础、独联体、G7、G20)。其中之一可以通过

coco G20

列出该分类中的所有国家/

对于几乎涵盖所有国家的分类(MRIO 和 IAM 分类)

coco EXIO3

列出唯一的分类名称。在传递参数时,打印所选分类的简化函件:

coco EXIO3 --to ISO3

欲了解更多信息,请致电

coco -h

在Matlab中使用

较新的(在 2016 年测试)版本的 Matlab 允许直接调用 Python 功能和库。这需要安装在系统路径(例如通过 Anaconda)中的 Python 版本>= 3.4)。

要进行测试,请在 Matlab 中试用此:

py.print(py.sys.version)

如果这有效,您也可以在通过点(在窗口命令线)安装后使用 coco - 请参阅上面的安装说明):

pip install country_converter --upgrade

在 matlab 中:

coco = py.country_converter.CountryConverter()
countries = {'The Swedish Kingdom', 'Norway is a Kingdom too', 'Peoples Republic of China', 'Republic of China'};
ISO2_pythontype = coco.convert(countries, pyargs('to', 'ISO2'));
ISO2_cellarray = cellfun(@char,cell(ISO2_pythontype),'UniformOutput',false);

或者,作为一个长单线:

short_names = cellfun(@char, cell(py.country_converter.convert({56, 276}, pyargs('src', 'UNcode', 'to', 'name_short'))), 'UniformOutput',false);

如上所述,可可的所有属性也可在Matlab提供:

coco = py.country_converter.CountryConverter();
coco.EU27
EU27ISO3 = coco.EU27as('ISO3');

这些功能返回pandas数据帧。基础值可以访问与 。值 (例如.

EU27ISO3.values

我留给专业的 Matlab 用户来找出如何进一步处理它们。

另请参阅 IPython 笔记本(country_converter_examples.ipynb)以获取更多信息 - Python 中提供的所有功能(例如,通过附加数据文件,指定在数据丢失的情况下的输出)也在 Matlab 中工作,通过 pyargs 功能传递参数。

为国家聚合构建和谐

Coco 提供在不同分类之间构建和谐载体、矩阵和字典的功能。这可以用于巨蛇以及垫板。有关更多信息,请参阅(country_converter_aggregation_helper.ipynb)

分类方案

目前有以下分类方案(另请参阅下面的数据源以获取更多信息):

  1. ISO2 (ISO 3166-1 阿尔法-2)
  2. ISO3 (ISO 3166-1 阿尔法-3)
  3. ISO - 数字(ISO 3166-1 数字)
  4. 联合国数字代码(M.49 - 跟随大扩展ISO数字)
  5. 标准名称或短名称
  6. "官方"名称
  7. 大陆
  8. 联合国地区
  9. EXIOBASE 1 分类
  10. EXIOBASE 2 分类
  11. EXIOBASE 3 分类
  12. WIOD分类
  13. 欧拉
  14. 经合组织成员(每年)
  15. 消息11 区域分类
  16. 图像
  17. 提醒
  18. 联合国会员国(每年)
  19. 欧盟成员(包括欧盟12国、欧盟15国、欧盟25国、欧盟27国、EU27_2007国、欧盟28国)
  20. 欧洲经济区成员
  21. 申根区
  22. [塞西莉亚](https://cecilia2050.eu/system/files/De Koning et al. (2014)_Scenarios for 2050_0.pdf)2050 分类
  23. 亚太经合组织
  24. 金砖四国
  25. 基本
  26. 独联体(截至2019年,土库曼斯坦除外)
  27. G7
  28. G20(将所有欧盟成员国列为个别成员国)
  29. 粮农组织代码(数字)
  30. GBD 代码(数字 - 全球疾病负担国家代码)

Coco 包含官方认可的代码以及争议或解散国家的非标准代码。将设置限制为只有官方承认的联合国会员国或包括过时的国家,请通过

import country_converter as coco
cc = coco.CountryConverter()
cc_UN = coco.CountryConverter(only_UNmember=True)
cc_all = coco.CountryConverter(include_obsolete=True)cc.convert(['PSE', 'XKX', 'EAZ', 'FRA'], to='name_short')
cc_UN.convert(['PSE', 'XKX', 'EAZ', 'FRA'], to='name_short')
cc_all.convert(['PSE', 'XKX', 'EAZ', 'FRA'], to='name_short')

cc 导致 [巴勒斯坦’, ‘科索沃’, ‘找不到’, ‘法国’, 而cc_UN转换为 [未找到’, ‘未找到’, ‘未找到’, '法国]和cc_all转换为 [‘巴勒斯坦’, ‘科索沃’, ‘桑给巴尔’, ‘法国’] 请注意, 基础数据帧可在属性.数据 (例如cc_all. 数据) 。

数据源和进一步阅读

大多数基础数据都可以在维基百科中找到,描述ISO 3166-1的页面是一个很好的起点。联合国区域/代码在联合国统计司(未统计)网页上提供。在维基百科上也解释了ISO数字代码和UN(M.49)代码之间的差异。从各自的数据库中提取了EXIOBASE、WIOD和Eora分类。 对于Eora,这些名称基于网页上提供的"国家名称"csv 文件,但更新了 Eora26 数据库中使用的不同名称。消息分类遵循消息模型区域描述中给出的 11 个区域聚合。IMAGE分类基于"区域分类地图",以便提醒我们从模型开发人员处收到国家地图。

经合组织和联合国的成员可以在成员组织的网页上找到,关于过时的国家代码的信息在Statoids网页上。

由于英国脱欧进程,欧盟的形势变得复杂起来。在命名上,可可遵循欧盟统计局的词汇表,因此欧盟27指没有英国的欧盟,而EU27_2007指的是没有克罗地亚的欧盟(2007年扩大后的地位)。欧盟的捷径总是与最近的分类联系起来。欧洲经济区协议仍然适用于英国(2020年9月,英国脱欧过渡期-如这里所述),因此英国目前被纳入欧洲经济区。

全球疾病负担国家代码是从此处可用的 GBD 代码簿中提取的。

沟通、问题、错误和增强功能

请使用问题跟踪器记录错误,建议增强功能以及与 coco 相关的所有其他通信。

你可以在推特上关注我, 了解我所有的开源和研究项目的最新消息 (偶尔还有一些随机转推) 。

相关软件

一揽子计划为国家提供历史国家、国家细分、语言和货币的ISO官方数据库。如果您需要转换非英语国名,则国名包括一个以不同语言和功能转换为不同 ISO 3166 标准的国名的广泛数据库。Python-iso3166专注于 ISO 3166 标准中定义的两个字母、三个字母和三位数代码之间的转换。

如果您正在使用 R,则应该查看国家代码。

country-converter官方文档----机翻人工确认相关推荐

  1. 《深入理解计算机系统》实验二Bomb Lab下载和官方文档机翻

    前言 <深入理解计算机系统>官网:http://csapp.cs.cmu.edu/3e/labs.html 该篇文章是实验二Bomb Lab的Writeup机翻. 原文:http://cs ...

  2. 《深入理解计算机系统》实验四Architecture Lab下载和官方文档机翻

    前言 <深入理解计算机系统>官网:http://csapp.cs.cmu.edu/3e/labs.html 该篇文章是是实验四Architecture Lab中的Writeup(archl ...

  3. keepalived配置参数官方文档中文翻译版

    keepalived-1.2.3 配置文件关键字官方文档详解翻译中文版 版本V1.0 时间2012-07-17 版权GPL 作者itnihao 邮箱 itnihao@qq.com 本文档来自keepa ...

  4. 微软 theme 主题文件官方文档中文翻译版

    这份文档将主要讨论Windows 7,Windows Vista和Windows XP中使用的主题文件(.theme)的语言格式.一个.theme文件实质上是一个分段记录特定桌面可视化效果设定的.in ...

  5. HTTPie 官方文档中文翻译版

    博客原文» HTTPie 是一个命令行 HTTP 客户端.目标是让 CLI 与 Web services 的交互尽可能的更友好.它提供了一个简单的 http 命令,可以让我们用简单自然的表述发送任意 ...

  6. Hyperledger-indy 官方文档人工翻译

    博客内容为Hyperledger-indy官方部署文档的中文翻译,翻译内容系原创,转载注明来源 [说明] (1)[撰写目的] Hyperledger-indy的中文资料较少,希望能为初次接触Hyper ...

  7. pytest官方文档 6.2 中文翻译版(第十章):警告捕捉

    从3.1版本开始,pytest会在整个测试执行的过程中自动的捕捉警告: # content of test_show_warnings.py import warningsdef api_v1():w ...

  8. mysql5.5配置向导官方文档【中文翻译版】

    这是mysql的官方文档的翻译版本,浏览器翻译的,基本上能看懂.图片看着更加方便.就是看着发虚,可以直接点击图片看大图. MySQL5.5配置向导中文说明

  9. MySQL8.0.28安装教程全程参考MySQL官方文档

    MySQL8.0.28详细安装教程.提供了Windows10下安装MariaDB与MySQL8.0同时共存的方法,以及Linux发行版Redhat7系列安装MySQL8.0详细教程.Windows10 ...

  10. mysql 标识符规则_MySQL 标识符到底区分大小写么——官方文档告诉你

    最近在阿里云服务器上部署一个自己写的小 demo 时遇到一点问题,查看 Tomcat 日志后定位到问题出现在与数据库服务器交互的地方,执行 SQL 语句时会返回 指定列.指定名 不存在的错误.多方查证 ...

最新文章

  1. 今天下午2:00,RT-Thread与智能车竞赛概况
  2. 理解Java中的hashCode 和 equals 方法
  3. 网络编程学习笔记(服务器端进程终止)
  4. 您能看出这个Double Check里的问题吗?(解答)
  5. 启明云端分享|AIOT+智慧屏解决方案,用色彩渲染智慧生活
  6. cas 注销不关闭浏览器异常_如何关闭华为手机这些“流氓”推送?
  7. python变量名可以包含的字符有问号吗,带问号文字的Python正则表达式
  8. aix vnc oracle,请问如何配置AIX上的vnc
  9. Cuda:invalid device pointer
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的旅游景点门票售票管理系统
  11. maya为什么不能导出fbx_Maya在操作中最容易出现的几个问题,现在注意还来得及...
  12. JS如何关闭当前浏览器窗口?
  13. 717. 1比特与2比特字符
  14. Luogu1005 矩阵取数游戏
  15. python图书馆管理系统源代码_python代码实现图书管理系统
  16. 计算机视觉 | 面试题:26、LBP算法原理
  17. B1299 [LLH邀请赛]巧克力棒 博弈论
  18. eplan如何导入access_EPLAN导入edz文件太慢如何解决
  19. 王家林人工智能AI 第七节课:四种性能优化Matrix编写AI框架实战(Gradient Descent的陷阱、及几种常见的性能优化方式实战)老师微信13928463918
  20. 软件测试面试两分钟自我介绍

热门文章

  1. 专业解读:超高清4K是什么?
  2. 理解 GBK、Unicode、utf-8
  3. 美化java界面,java课程设计界面美化包
  4. 1433抓鸡的原理详解以及防范
  5. WindowBuilder的安装
  6. 升腾主机装linux,升腾终端安装说明
  7. php生成成语,洪恩在线成语词典小偷程序php版_PHP教程
  8. CATIA二次开发VBA:(一)宏的录制、修改及回放
  9. vfp mysql_请问:在VFP中如何连接MYSQL
  10. 如何将Windows 7 RC升级到RTM(最终版本)