country-converter官方文档----机翻人工确认
項目描述
國家轉(zhuǎn)換器 (coco) 是一個 Python 包,可在不同的分類和不同的命名版本之間轉(zhuǎn)換和匹配國家名稱。在內(nèi)部,它使用常規(guī)的表達(dá)方式來匹配國家名稱。可可還可用于在不同的分類方案之間構(gòu)建聚合和諧矩陣。
內(nèi)容表
- 動機
- 安裝
- 用法
- 基本使用
- 在 Python 內(nèi)使用
- 在命令行中使用
- 在Matlab中使用
- 為國家聚合構(gòu)建和諧
- 基本使用
- 分類方案
- 數(shù)據(jù)源和進(jìn)一步閱讀
- 溝通、問題、錯誤和增強功能
- 貢獻(xiàn)
- 相關(guān)軟件
- 引用國家轉(zhuǎn)換器
- 確認(rèn)
作用
迄今為止,在(元)數(shù)據(jù)描述中,沒有關(guān)于如何命名或指定個別國家單一標(biāo)準(zhǔn)。雖然某些數(shù)據(jù)源遵循 ISO 3166,但此標(biāo)準(zhǔn)除數(shù)字分類外,還定義了 2 個字母和 3 個字母的代碼。使問題更加復(fù)雜的是,許多數(shù)據(jù)庫沒有使用現(xiàn)有標(biāo)準(zhǔn)之一,而是使用不合標(biāo)準(zhǔn)的國家名稱對國家進(jìn)行分類。
國家轉(zhuǎn)換器(可可)自動轉(zhuǎn)換從不同的標(biāo)準(zhǔn)和版本的國家名稱。在內(nèi)部,Coco 基于一張表格,其中指定了每個國家/地區(qū)不同的 ISO 和 UN 標(biāo)準(zhǔn),以及官方名稱和常規(guī)表達(dá)方式,旨在匹配特定國家名稱的所有英文版本。此外,可可還包括基于聯(lián)合國、歐盟、經(jīng)合組織成員國、聯(lián)合國區(qū)域規(guī)格、大陸以及各種MRIO和IAM數(shù)據(jù)庫的分類(見下文的分類方案)。
安裝
Country_converter在 Pypi 注冊。從命令行:
pip install country_converter --upgrade國家轉(zhuǎn)換器也可以從conda,可以安裝使用conda(如果你沒有conda_forge通道添加到您的康達(dá)配置添加"-cconda",請參閱此處的安裝說明):
conda install country_converter或者,源代碼可在GitHub上找到。
包裹取決于pandas庫:測試測試是必需的。有關(guān)運行測試的更多信息,請參閱貢獻(xiàn).rst。
用法
基本使用
在 Python 內(nèi)使用
將各種國名轉(zhuǎn)換為某些標(biāo)準(zhǔn)名稱:
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)這導(dǎo)致[坦桑尼亞’,德國’,‘佛得角’,‘突尼斯’,‘緬甸’,‘剛果共和國’,‘伊朗’,‘韓國’,‘朝鮮’。輸入格式根據(jù) ISO 二個字母、ISO 三個字母、ISO 數(shù)字或常規(guī)表達(dá)匹配自動確定。如果有任何模糊性,可以用參數(shù)"src"指定源格式。
在多次轉(zhuǎn)換的情況下,可以通過為所有轉(zhuǎn)換對單個國家轉(zhuǎn)換對象進(jìn)行實例化來實現(xiàn)更好的性能:
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)分類方案之間的轉(zhuǎn)換:
iso3_codes = ['USA', 'VUT', 'TKL', 'AUT', 'XXX' ] iso2_codes = coco.convert(names=iso3_codes, to='ISO2') print(iso2_codes)這導(dǎo)致 [美國’, ‘Vu’, ‘Tk’, ‘AT’, ‘找不到’
未找到的指示可以指定(例如,not_found = “不存在”),如果"not_found"未通過,則原始條目將通過:
iso2_codes = coco.convert(names=iso3_codes, to='ISO2', not_found=None) print(iso2_codes)結(jié)果在 [‘美國’, ‘VU’, ‘Tk’, ‘AT’, ‘XX’
內(nèi)部數(shù)據(jù)存儲在pandas數(shù)據(jù)幀中,可直接訪問。例如,這可用于篩選成員國組織的國家(每年)。注意:為此,需要一個"國家轉(zhuǎn)換器"實例。
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')常規(guī)表達(dá)式還可用于將任何國家列表與任何其他國家列表匹配。例如:
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)默認(rèn)情況下,如果找不到匹配項,則國家轉(zhuǎn)換器會向巨蛇記錄記錄器發(fā)出警告。以下示例演示了如何配置可可伐木行為。
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'有關(guān)更多信息,請參閱 IPython 筆記本(country_converter_examples.ipynb)。
命令線使用
國家轉(zhuǎn)換器包還提供了一個稱為 coco 的指揮線接口。
最小示例:
coco Cyprus DE Denmark Estonia 4 'United Kingdom' AUT根據(jù)將輸入與 ISO2、ISO3、ISonumeric 或常規(guī)表達(dá)匹配匹配的輸入,將給定名稱轉(zhuǎn)換為 ISO3 代碼。名稱列表必須按空格劃分,由多個單詞組成的國名必須放在引號中(’)。
輸入分類可以用"src"或"-s"(或?qū)⒆詣哟_定)、目標(biāo)分類(“到"或”-t")來指定。
默認(rèn)輸出是一個空間分離列表,可以通過"+output_sep"或"-o"(例如 -o"|")通過分離器來更改。
因此,要從 ISO3 轉(zhuǎn)換為 UN 編號代碼,并接收輸出作為逗號分離列表使用:
coco AUT DEU VAT AUS -s ISO3 -t UNcode -o ', '命令線工具還允許指定未找到條目的輸出,包括通過"無"將其傳遞到輸出:
coco CAN Peru US Mexico Venezuela UK Arendelle --not_found=None并指定一個額外的數(shù)據(jù)文件,這將覆蓋現(xiàn)有的國家匹配
coco Congo --additional_data path/to/datafile.csv請參閱 https://github.com/konstantinstadler/country_converter/tree/master/tests/custom_data_example.txt,了解其他數(shù)據(jù)文件示例。
旗幟UNmember_only(-u)和include_obsolete(-i)僅將搜索限制在聯(lián)合國會員國,或?qū)⑵鋽U展到還包括目前過時的國家。例如,荷屬安的列斯群島于2010年解散。
因此:
coco "Netherlands Antilles"導(dǎo)致"未找到"。但是,搜索范圍可擴展到最近解散的國家::
coco "Netherlands Antilles" -i這導(dǎo)致了 “螞蟻” 。
除這些國家外,可可指揮線工具還接受各種國家分類(EXIO1、EXIO2、EXIO3、WIOD、Eora、MESSAGE、OECD、EU27、EU28、UN、過時、塞西莉亞2050、金磚四國、APEC、基礎(chǔ)、獨聯(lián)體、G7、G20)。其中之一可以通過
coco G20列出該分類中的所有國家/
對于幾乎涵蓋所有國家的分類(MRIO 和 IAM 分類)
coco EXIO3列出唯一的分類名稱。在傳遞參數(shù)時,打印所選分類的簡化函件:
coco EXIO3 --to ISO3欲了解更多信息,請致電
coco -h在Matlab中使用
較新的(在 2016 年測試)版本的 Matlab 允許直接調(diào)用 Python 功能和庫。這需要安裝在系統(tǒng)路徑(例如通過 Anaconda)中的 Python 版本>= 3.4)。
要進(jìn)行測試,請在 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數(shù)據(jù)幀。基礎(chǔ)值可以訪問與 。值 (例如.
EU27ISO3.values我留給專業(yè)的 Matlab 用戶來找出如何進(jìn)一步處理它們。
另請參閱 IPython 筆記本(country_converter_examples.ipynb)以獲取更多信息 - Python 中提供的所有功能(例如,通過附加數(shù)據(jù)文件,指定在數(shù)據(jù)丟失的情況下的輸出)也在 Matlab 中工作,通過 pyargs 功能傳遞參數(shù)。
為國家聚合構(gòu)建和諧
Coco 提供在不同分類之間構(gòu)建和諧載體、矩陣和字典的功能。這可以用于巨蛇以及墊板。有關(guān)更多信息,請參閱(country_converter_aggregation_helper.ipynb)
分類方案
目前有以下分類方案(另請參閱下面的數(shù)據(jù)源以獲取更多信息):
Coco 包含官方認(rèn)可的代碼以及爭議或解散國家的非標(biāo)準(zhǔn)代碼。將設(shè)置限制為只有官方承認(rèn)的聯(lián)合國會員國或包括過時的國家,請通過
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 導(dǎo)致 [巴勒斯坦’, ‘科索沃’, ‘找不到’, ‘法國’, 而cc_UN轉(zhuǎn)換為 [未找到’, ‘未找到’, ‘未找到’, '法國]和cc_all轉(zhuǎn)換為 [‘巴勒斯坦’, ‘科索沃’, ‘桑給巴爾’, ‘法國’] 請注意, 基礎(chǔ)數(shù)據(jù)幀可在屬性.數(shù)據(jù) (例如cc_all. 數(shù)據(jù)) 。
數(shù)據(jù)源和進(jìn)一步閱讀
大多數(shù)基礎(chǔ)數(shù)據(jù)都可以在維基百科中找到,描述ISO 3166-1的頁面是一個很好的起點。聯(lián)合國區(qū)域/代碼在聯(lián)合國統(tǒng)計司(未統(tǒng)計)網(wǎng)頁上提供。在維基百科上也解釋了ISO數(shù)字代碼和UN(M.49)代碼之間的差異。從各自的數(shù)據(jù)庫中提取了EXIOBASE、WIOD和Eora分類。 對于Eora,這些名稱基于網(wǎng)頁上提供的"國家名稱"csv 文件,但更新了 Eora26 數(shù)據(jù)庫中使用的不同名稱。消息分類遵循消息模型區(qū)域描述中給出的 11 個區(qū)域聚合。IMAGE分類基于"區(qū)域分類地圖",以便提醒我們從模型開發(fā)人員處收到國家地圖。
經(jīng)合組織和聯(lián)合國的成員可以在成員組織的網(wǎng)頁上找到,關(guān)于過時的國家代碼的信息在Statoids網(wǎng)頁上。
由于英國脫歐進(jìn)程,歐盟的形勢變得復(fù)雜起來。在命名上,可可遵循歐盟統(tǒng)計局的詞匯表,因此歐盟27指沒有英國的歐盟,而EU27_2007指的是沒有克羅地亞的歐盟(2007年擴大后的地位)。歐盟的捷徑總是與最近的分類聯(lián)系起來。歐洲經(jīng)濟區(qū)協(xié)議仍然適用于英國(2020年9月,英國脫歐過渡期-如這里所述),因此英國目前被納入歐洲經(jīng)濟區(qū)。
全球疾病負(fù)擔(dān)國家代碼是從此處可用的 GBD 代碼簿中提取的。
溝通、問題、錯誤和增強功能
請使用問題跟蹤器記錄錯誤,建議增強功能以及與 coco 相關(guān)的所有其他通信。
你可以在推特上關(guān)注我, 了解我所有的開源和研究項目的最新消息 (偶爾還有一些隨機轉(zhuǎn)推) 。
相關(guān)軟件
一攬子計劃為國家提供歷史國家、國家細(xì)分、語言和貨幣的ISO官方數(shù)據(jù)庫。如果您需要轉(zhuǎn)換非英語國名,則國名包括一個以不同語言和功能轉(zhuǎn)換為不同 ISO 3166 標(biāo)準(zhǔn)的國名的廣泛數(shù)據(jù)庫。Python-iso3166專注于 ISO 3166 標(biāo)準(zhǔn)中定義的兩個字母、三個字母和三位數(shù)代碼之間的轉(zhuǎn)換。
如果您正在使用 R,則應(yīng)該查看國家代碼。
總結(jié)
以上是生活随笔為你收集整理的country-converter官方文档----机翻人工确认的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ODBC、OLE DB、 ADO的区别
- 下一篇: 2018年最令人惊讶的WordPress