问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

wto数据库如何查数据

发布网友 发布时间:2022-04-21 01:14

我来回答

1个回答

热心网友 时间:2022-04-09 07:48

联合国商品贸易统计数据库(缩写UN Comtrade)由联合国统计署创建,是目前全球最大、最权威的国际商品贸易数据型资源库,每年超过200个国家和地区向联合国统计署提供其官方年度商品贸易数据,涵盖全球99%的商品交易,真实反映国际商品流动趋势。这是我们研究全球贸易活动最基础、最权威的数据库。下载页面如下:

但是每次都要手动操作一遍,就比较麻烦。不过UN Comtrade提供了可以更方便获得数据的接口,我们来尝试一下。接口的实现原理,大概相当于:我们把要查询的数据,编成一条信息,发给UN Comtrade,然后UN Comtrade返回一个包含数据的文件,我们再解码成我们想要的格式。

一、查看接口格式。

我们先去UN Comtrade的接口网页,来看一看接口格式。

上图就是UN Comtrade的接口中,所包含的参数及格式。具体为:

r:reporting area 报告数据的国家,默认值0

px:classification 商品代码体系,商品进出口的默认值是HS(即Harmonized System),也可以选ST(即Standard International Trade Classification),服务进出口的默认值是EB02

ps:time period 时间区间,格式为 YYYY YYYYMM now recent等几种格式,取决于周期是月还是年。now 是获得最近1期数据(默认值),recent 是获得最近5期数据

p:partner area 发生贸易往来的经济体,默认值all

rg:trade regime / trade flow 贸易的方向,1 代表进口,2 代表出口,默认值all

cc:classification code 商品分类代码,TOTAL 代表全部,AG2 代表两位代码(默认值)等

max:maximum records returned 一次性返回的最大数据条数,默认值是500,普通访客最高是10万,认证用户最高是25万

type:trade data type 贸易类型,C 是商品(默认值),S 是服务

freq:data set frequency 数据频率,A 是年(默认值),M 是月

head:heading style 数据抬头格式,H 适合人阅读(默认值),M 适合机器阅读

最近铁矿石价格高涨,引发市场关注,而中国铁矿石的主要进口来源地是澳大利亚,我们就来看看,过去5年中国自澳大利亚进口铁矿石的数据。

我们把相关参数录入后,点击左下角的 Try it out! 就会返回给我们一个地址,这个地址就是向UN Comtrade发送数据请求的信息。同样,我们可以基于这条信息的格式,来设计我们的 Python 接口函数。

https://comtrade.un.org/api/get?r=156&px=HS&ps=2015%2C2016%2C2017%2C2018%2C2019&p=36&rg=1&cc=2601&type=C&freq=A&head=H

我们把这条消息输入浏览器的地址栏,就可以看到返回的数据如下,里面的 TradeValue 就是我们想要的数据了:

二、调用requests库解析数据

UN Comtrade的接口以json格式交换数据,我们来看一看返回的数据格式。我们要用到Python的requests库。

import requests test = requests.get("http://comtrade.un.org/api/get", params=dict(r="156",px="HS",ps="2015,2016,2017,2018,2019",p="36",rg='1',cc='2601',type='C',freq="A")) test.json()

我们来看一下返回内容,json有点类似于双重字典,从下文可以看到,返回结果主要包括两大类,第一大类是validation,主要是过程信息,第二大类是dataset,主要是我们需要的数据。

{'validation': {'status': {'name': 'Ok', 'value': 0, 'category': 0, 'description': '', 'helpUrl': 'For more reference visit http://comtrade.un.org/data/dev/portal/'}, 'message': None, 'count': {'value': 5, 'started': '2020-12-15T02:52:46.3395337+01:00', 'finished': '2020-12-15T02:52:47.0901557+01:00', 'rationSeconds': 0.750622}, 'datasetTimer': {'started': '2020-12-15T02:52:46.3395337+01:00', 'finished': '2020-12-15T02:52:47.8896543+01:00', 'rationSeconds': 1.5501205999999998}}, 'dataset': [{'pfCode': 'H5', 'yr': 2017, 'period': 2017, 'periodDesc': '2017', 'aggrLevel': 4, 'IsLeaf': 0, 'rgCode': 1, 'rgDesc': 'Import', 'rtCode': 156, 'rtTitle': 'China', 'rt3ISO': 'CHN', 'ptCode': 36, 'ptTitle': 'Australia', 'pt3ISO': 'AUS', 'ptCode2': None, 'ptTitle2': '', 'pt3ISO2': '', 'cstCode': '', 'cstDesc': '', 'motCode': '', 'motDesc': '', 'cmdCode': '2601', 'cmdDescE': 'Iron ores and concentrates; including roasted iron pyrites', 'qtCode': 8, 'qtDesc': 'Weight in kilograms', 'qtAltCode': None, 'qtAltDesc': '', 'TradeQuantity': 668420584292, 'AltQuantity': None, 'NetWeight': 668420584292, 'GrossWeight': None, 'TradeValue': 46500341920, 'CIFValue': None, 'FOBValue': None, 'estCode': 0},

三、使用Pandas库转换数据格式

我们选择我们关心的数据,用关键字提取出来,然后转换成DataFrame格式,就可以方便的查看数据了:

import pandas as pd import cufflinks as cf pd.DataFrame(test.json()['dataset'])[['yr','TradeValue']].iplot(x='yr',y='TradeValue',kind='bar',title='中国过去5年自澳大利亚进口铁矿石金额')

四、简单封装

我们把上文中的读取和解析数据的过程,简单封装成一个函数,以方便后续调用,比如我们想查*历年自澳大利亚进口铁矿石的金额,可以用如下命令:

import requests import pandas as pd import cufflinks as cf def comtrade_data(**params): r = requests.get("http://comtrade.un.org/api/get", params=params) return pd.DataFrame(r.json()['dataset']) Iron_ores = comtrade_data(r="156",px="HS",ps="ALL",p="36",rg='1',cc='2601',type='C',freq="A") Iron_ores[['yr','TradeValue']].iplot(x='yr',y='TradeValue',kind='bar',title='中国自澳大利亚进口铁矿石金额')

我们想看*的大豆自各国进口的情况,用

soybean = comtrade_data(r="156",px="HS",ps="2019",p="all",rg='1',cc='1201',type='C',freq="A") soybean = soybean.sort_values(by='TradeValue',ascending=False) soybean.iloc[1:6].iplot(x='ptTitle',y='TradeValue',kind='bar',title='2019年中国大豆进口额')

从上图可以看到,2019年中国自巴西的大豆进口,明显高于美国,那么这种情况,是否是受到中美贸易摩擦的影响呢?我们用如下命令,就可以很清晰的看到,2018年之前,中国自美国和巴西进口大豆的金额比较接近,但是2018年之后,中国自美进口大豆锐减,并从巴西替代,这也是中美贸易摩擦对美国影响的一个案例。

soybean_import = comtrade_data(r="156",px="HS",ps="all",p="76,842",rg='1',cc='1201',type='C',freq="A") soybean_import_usa = soybean_import[soybean_import['ptTitle']=='USA'].set_index('yr')[['TradeValue']] soybean_import_brazil = soybean_import[soybean_import['ptTitle']=='Brazil'].set_index('yr')[['TradeValue']] soybean_import_all = soybean_import_usa.join(soybean_import_brazil,lsuffix='_USA',rsuffix='_Brazil') soybean_import_all.iplot(kind='bar',title='中国自美国和巴西进口大豆金额',legend={'orientation':'h','x':0.1,'y':-0.1})

五、几个注意事项

1、如果是访客用户的话,ps、r、p三个参数最多只能填5个代码,最多只有一个参数可以使用all,cc最多可以填20个代码,可以使用all

2、查询国家的时候,只能录入国家编号,查询国家对应编号的地址是https://comtrade.un.org/Data/cache/reporterAreas.json

3、查询对手方国家的时候,只能录入国家编号,查询对手方国家对应编号的地址是https://comtrade.un.org/Data/cache/partnerAreas.json

4、查询相关商品对应的HS编码,地址是https://comtrade.un.org/Data/cache/classificationHS.json

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...是什么鱼?炖给做了手术的病人吃,应该怎么炖?放哪 ... 押尾桑wings you are the hero要学多久? 押尾的wings ~ you are the hero 对于一个学吉他一年刚刚接触AM技巧的人... 怎么在电脑上设置短信群发如何用电脑群发短信 股市什么叫平仓举例 尼康D850全画幅数码单反相机-购买最佳价格 全画幅单反有哪些 广东省婚庆行业协会组织架构 引领品牌CI战略的设计师 ...发短信没有网址的收到了有网址的没反应 我是z7Max pandas怎么找出异常日期 如何更新pandas dataframe的值 如何将pandas.dataframe的数据读取到文件中 DataFrame中的排序必须是相同的数据类型吗 Python怎么获取mysql查询的信息并且截取? 在Python中怎么将json获取的数据如何转化为dataframe python 如何将一行十列的数据转换dataframe格式两行五列的数据 如何将dataframe格式的分钟级别的数据转换为小时级别 如何将dataframe转换为rdd类型 将dataframe的一行转成一个字典python python DataFrame类型转换问题 微信上编辑过的所有标签怎样删除 蜂蜡怎么溶解? 蜂胶和蜂蜡的区别有哪些 蜂蜡有什么用处 怎么保存 蜂蜡是什么材料,价格贵吗? 蜂蜡具有什么药效? 蜂蜡是什么 蜂蜡的作用有哪些? 蜂蜡有什么作用 网络中产生大量丢包现象?故障在哪?如何处理? 雨水节气期间气候有什么特点 雨水节气气候特点是什么 雨量增多气温升高 雨水是什么意思 雨水节气有哪些气候特点 雨水节气有什么特点 雨水节气特点 雨水节气的特点和风俗有哪些? 雨水节气的特点 雨水的节气特点 北方雨水节气后还冷吗 雨水节气是气温变暖吗 二十四节气中的“雨水”有什么特点 二十四节气中的“雨水”有什么特点? 雨水节气的特点和风俗是什么? 雨水节气的含义,雨水是什么季节,雨水是什么意思 404 Not Found 雨水的特点 雨水的节气天气 24节气雨水的由来是什么? 社保卡在医院丢了怎么办 住院患者把身份证跟社保卡弄丢了该怎么办