python中的世界银行数据api

world-bank-data的Python项目详细描述


世界银行的python数据

Build Statuscodecov.ioLanguage grade: PythonPypipyversionsJupyter NotebookJupyterLab

这是python中World Bank API v2的一个实现。使用此包可以浏览由World Bank发布的World Development Indicators

快速教程

安装

使用

安装或更新world bank datapython包
pip install world_bank_data --upgrade

获取来源、主题、国家/地区的列表

importpandasaspdimportworld_bank_dataaswbpd.set_option('display.max_rows',6)

主题列表可通过

wb.get_topics()

返回源的方法是

wb.get_sources()

最后,可以使用

访问国家列表
wb.get_countries()

此外,请尝试

  • get_regions
  • get_incomelevels
  • get_lendingtypes

以检索有关国家分类的更多信息。

获取指标列表

这是通过get_indicators函数完成的。您可以只查询特定源或主题的指示符,如下所示。如果没有输入参数,get_indicator函数将返回所有16000+个指示器的说明。

wb.get_indicators(topic=3,source=2)# topic and source id are from get_topics/get_sources

请求所有指标可能需要几秒钟的时间,但不用担心,结果会被缓存,所以下次这将是即时的。

搜索一个国家或指标

使用函数search_countriessearch_sourcesearch_indicators。或者,如果您想在现有的数据文件中搜索,只需使用^ {CD9}}。

wb.search_indicators('mathematics')

获取指示器的值

函数get_series返回单个指示器的值。世界银行的api接受了很多论据,包括:

  • mrv,整数:一个或多个{em1}$最新值
  • date,string:一年,或两年,用冒号分隔,如“2010:2018”
  • gapfill,字符串:“y”或“n”(默认值):forward填充缺少的值。

例如,下面的调用返回世界人口的最新估计值:

wb.get_series('SP.POP.TOTL',mrv=1)

上面的结果有一个三维索引。使用参数simplify_index忽略采用单个值的维度(这里是yearseries)。另外,如果希望数据由代码而不是标签索引,请使用参数id_or_value='id'

wb.get_series('SP.POP.TOTL',date='2016',id_or_value='id',simplify_index=True)

准备好互动教程了吗?

去我们的Binder运行这个README,或者我们的另一个tutorial运行生成这个世界人口图所需的代码:

World Population 2017

参考资料

世界银行

World Bank有一个Data Catalog,和一个交互的data explorer

允许从各种语言访问数据的第三方应用程序列在here

谷歌的公共数据浏览器

世界银行的数据也可以在谷歌的Data Explorer中找到。

Python

除了world_bank_data,python用户可能会发现以下包很有用:

  • ^{},有很好的文档记录,但最后一次发布是在2013年。
  • ^{},效果很好。
  • ^{}

我写world_bank_data的原因主要是速度,例如,我想使用世界银行api(v2)的最新版本,并从显著的速度改进中获益。重新实现api还使我对选项映射有了更好的控制。

r

r用户可以使用两个软件包访问世界银行的数据:

另请参见Introduction to the wbstats R-package,或这两个包中的quick review

常见问题

非英语国家和指标说明

世界银行用英语以外的其他语言描述了它们的来源和指标。在每个get_countriesget_indicators等中使用language参数,或者全局更改默认值:

wb.options.language='vi'wb.get_indicators('SP.POP.TOTL')
wb.options.language='en'

缓存

所有请求(除了get_series)都是使用cachetools包中最近使用的缓存来缓存的。

在代理后面使用

可以在http代理后面使用包。在get_*函数中使用proxies参数,或者设置全局代理,例如:

wb.options.proxies={'http':'http://example.com:3128'}

许可证

这个python包是在mit许可下授权的。

还请阅读世界银行Terms of Use中有关适用于随此软件包下载的数据的条件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
默认情况下,JavaApachePOI锁定所有单元格。如何使所有单元格解锁?   java Play框架:为什么https url在使用“sbt dist”命令时不起作用?   ldap查询搜索筛选器中“&”的java意义   java构造不带警告的ImmutableSortedSet   用户界面Java GUI图形有多高效?   java在整个应用程序中使用相同的数据还是复制它?   java如何为所有打开的文档应用插入键操作   java存储setter方法的路径,以便以后可以调用它   java加载具有相同密钥的外部属性文件   Java通过inputmap跟踪击键   Java SSLSocket错误:无法从非静态上下文引用   java访问名为的文件的正确方式   java左括号打印在后缀中&右括号错误   java在循环中对齐数字列