【Python】 世界銀行のTCdata360 APIからデータ取得
- 2021.06.07
- Python
TCdata360は世界銀行が提供しているデータベースであり、様々な情報源から貿易や競争力などに関するデータをまとめて提供してくれる。
世界銀行のデータベースからのデータ取得はpandas-datareaderを使えば簡単に行えるが、世界銀行のTCdata360が提供するデータの取得はできない。
そこでPythonでTCdata360のAPIからデータを取得する方法を記録しておく。
クロスセクションデータ
複数国のある年の特定指標を取得する。
import pandas as pd
import requests
def TCdata(cs_list,indicator,year):
# yearには特定の年を指定
countries = '%2C'.join(cs_list)
url = 'https://tcdata360-backend.worldbank.org/api/v1/data?countries={}&indicators={}&timeframes={}'.format(countries,indicator,year)
r = requests.get(url)
r = r.json()
countries = [i['name'] for i in r['countries']]
values = [i['indicators'][0]['values'][year] for i in r['data']]
col = r['indicators'][0]['name']
df = pd.DataFrame(data=values,index=countries,columns=[col])
return df
cs_listに対象にしたい国を3桁のISO国コードをリストにして渡す。
yearには取得対象の年を指定。
これでTCdata()を実行すればデータフレームでデータ取得ができる。
タイムシリーズデータやパネルデータに関してはTCdata360から取得が必要になったことがないため、もし今後必要になった場合に追記したいと思う。
-
前の記事
Plotlyでpandas dataframeを対話的なグラフにする 2021.06.06
-
次の記事
【Python】Plotly で複数のpandasデータフレームをサブプロットする方法考察 2021.06.07