Introduction to the Pandas-Datareader, which is an invaluable way to get data from many sources, including the World Bank.
In this tutorial we will cover how to get the data from GDP per capita yearly data from countries and plot them.
The World Bank was founded in 1944 to make loans to low-income countries, with the purpose to decrease poverty in the world (see wikipedia.org for further history).
What you might not know, World Bank has an amazing sets of data that you can either browse on their webpage or get access to directly in Python using the Pandas-Datareader.
We will take a look at how to extract the NY.GDP.PCAP.KD indicator.
The what?
I know. The GDP per capita (constant 2010 US$), as it states on the webpage.
On that page you can get the GDP per capita for each country in the world back to 1960.
That is what we are going to do.
Reading the Pandas-datareaders World Bank documentation you fall over the following function.
pandas_datareader.wb.download
(country=None, indicator=None, start=2003, end=2005, freq=None, errors=’warn’, **kwargs)
Where you can set the country (or countries) and indicator your want:
all
downloads data for all countries 2 or 3 character ISO country codes select individual countries (e.g.“US“,“CA“) or (e.g.“USA“,“CAN“). The codes can be mixed.The two ISO lists of countries, provided by wikipedia, are hardcoded into pandas as of 11/10/2014.id
field in WDIsearch()
Luckily we already have our indicator from Step 1 (NY.GDP.PCAP.KD). Then we just need to find some countries of interest.
Let’s take United States, France, Great Britain, Denmark and Norway.
from pandas_datareader import wb
dat = wb.download(indicator='NY.GDP.PCAP.KD', country=['US', 'FR', 'GB', 'DK', 'NO'], start=1960, end=2019)
print(dat)
Resulting in the following output.
NY.GDP.PCAP.KD
country year
Denmark 2019 65147.427182
2018 63915.468361
2017 62733.019808
2016 61877.976481
2015 60402.129248
... ...
United States 1964 19824.587845
1963 18999.888387
1962 18462.935998
1961 17671.150187
1960 17562.592084
[300 rows x 1 columns]
We need to restructure the data in order to make a nice graph.
This can be done with unstack.
from pandas_datareader import wb
import matplotlib.pyplot as plt
dat = wb.download(indicator='NY.GDP.PCAP.KD', country=['US', 'FR', 'GB', 'DK', 'NO'], start=1960, end=2019)
print(dat.unstack())
Which result in this output.
NY.GDP.PCAP.KD ...
year 1960 1961 ... 2018 2019
country ...
Denmark 20537.549556 21695.609308 ... 63915.468361 65147.427182
France 12743.925100 13203.320855 ... 43720.026351 44317.392315
Norway 23167.441740 24426.011426 ... 92119.522964 92556.321645
United Kingdom 13934.029831 14198.673562 ... 43324.049759 43688.437455
United States 17562.592084 17671.150187 ... 54795.450086 55809.007792
If we transpose this and remove the double index frames that will come, then it should be good to make a plot with.
from pandas_datareader import wb
import matplotlib.pyplot as plt
dat = wb.download(indicator='NY.GDP.PCAP.KD', country=['US', 'FR', 'GB', 'DK', 'NO'], start=1960, end=2019)
print(dat.unstack().T.reset_index(0))
dat.unstack().T.reset_index(0).plot()
plt.title('GDP per capita')
plt.show()
Giving this output, where you can see what the Transpose (T) does.
country level_0 Denmark ... United Kingdom United States
year ...
1960 NY.GDP.PCAP.KD 20537.549556 ... 13934.029831 17562.592084
1961 NY.GDP.PCAP.KD 21695.609308 ... 14198.673562 17671.150187
1962 NY.GDP.PCAP.KD 22747.292463 ... 14233.959944 18462.935998
1963 NY.GDP.PCAP.KD 22712.577808 ... 14816.480305 18999.888387
1964 NY.GDP.PCAP.KD 24620.461432 ... 15535.026991 19824.587845
1965 NY.GDP.PCAP.KD 25542.173921 ... 15766.195724 20831.299767
1966 NY.GDP.PCAP.KD 26032.378816 ... 15926.169851 21930.591173
1967 NY.GDP.PCAP.KD 27256.322071 ... 16282.026160 22235.415708
Giving the following output.
Continue the exploration in the following tutorial.
Build and Deploy an AI App with Python Flask, OpenAI API, and Google Cloud: In…
Python REST APIs with gcloud Serverless In the fast-paced world of application development, building robust…
App Development with Python using Docker Are you an aspiring app developer looking to level…
Why Value-driven Data Science is the Key to Your Success In the world of data…
Harnessing the Power of Project-Based Learning and Python for Machine Learning Mastery In today's data-driven…
Is Python the right choice for Machine Learning? Should you learn Python for Machine Learning?…