This is an implementation of the World Bank API v2 in Python. Use this package to explore the World Development Indicators published by the World Bank.
Install or update the World Bank Data python package with
pip install world_bank_data --upgradeGet the list of sources, topics, countries, regions
import pandas as pd import world_bank_data as wb pd.set_option('display.max_rows', 6)
The list of topics is available with
Sources are returned by
And finally, the list of countries is accessible with
In addition, give a try to
get_regions
get_incomelevels
get_lendingtypes
to retrieve more information about country classifiers.
Get the list of indicatorsThis is done with the get_indicators
function. You may query only the indicators for a specific source or topic as below. If you input no arguments, the get_indicator
function will return the description of all the 16,000+ indicators.
wb.get_indicators(topic=3, source=2) # topic and source id are from get_topics/get_sources
Requesting all indicators may take a few seconds, but no worries, the result is cached, so next time this will be instantaneous.
Searching for one country or indicatorUse the functions search_countries
, search_source
, search_indicators
. Or, if you want to search in a existing dataframe, simply use search
.
wb.search_indicators('mathematics')Get the values of an indicator
The function get_series
returns the value of a single indicator. The World Bank API accepts quite a few arguments, including:
mrv
, integer: one or more most recent valuesdate
, string: either one year, or two years separated with a colon, like '2010:2018'gapfill
, string: 'Y' or 'N' (the default): forward fills missing values.For instance, the call below returns the most recent estimate for the World Population:
wb.get_series('SP.POP.TOTL', mrv=1)
The result above has a 3-dimensional index. Use the argument simplify_index
to ignore the dimensions that take a single value (here: year
and series
). Also, use the argument id_or_value='id'
if you prefer your data to be indexed by the codes rather than labels:
wb.get_series('SP.POP.TOTL', date='2016', id_or_value='id', simplify_index=True)Ready for an interative tutorial?
Go to our Binder and run either this README or the notebook under examples
to reproduce produce this plot of the World Population:
The World Bank has a Data Catalog, and an interactive data explorer.
Third party applications that allow to access the data from various languages are listed here.
Google's Public Data ExplorerThe World Bank data is also available in Google's Data Explorer.
Alternatively to world_bank_data
, Python users may find useful the following packages:
wbpy
, nicely documented and recently updated to Python 3 and the World Bank API v2.wbdata
, which works well.pandas_datareader
The reason for which I wrote world_bank_data
is mostly speed, e.g. I wanted to use the lastest version of the World Bank API (v2) and benefit from significant speed improvements. Reimplementing the API also gave me a finer control on the mapping of options.
R users can use two packages to access the World Bank data:
See also the Introduction to the wbstats R-package, or this quick review of the two packages.
Country and indicator description in non-English languagesThe World Bank describes their sources and indicators in other languages than English. Use either the language
argument in each of get_countries
, get_indicators
, etc, or change the default globally:
wb.options.language = 'vi' wb.get_indicators('SP.POP.TOTL')
wb.options.language = 'en'
All requests, except get_series
, are cached using a least recently used cache from the cachetools
package.
Using the package behind an http proxy is possible. Use either the proxies
argument in the get_*
functions, or set the proxy globally with e.g.:
wb.options.proxies = {'http': 'http://example.com:3128'}
This python package is licenced under the MIT License.
Please also read the World Bank Terms of Use relative to the conditions that apply to the data downloaded with this package.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4