PythonとWorld Bankデータで世界の産業構造を可視化する方法

はじめに 世界の国々の経済は、どのように変化しているのでしょうか?今回は、World Bank(世界銀行)が提供するオープンデータを使って、各国の産業構造の変化を可視化してみました。 この記事では、Pythonのpandasとmatplotlibを使って、1997年から2024年までの約30年間の産業構造の変化をグラフにする方法を紹介します。 産業構造とは? 経済学では、産業を3つに分類します: 第一次産業:農業、林業、漁業など(自然から直接資源を得る産業) 第二次産業:製造業、建設業など(原材料を加工する産業) 第三次産業:サービス業、金融、小売など(形のないサービスを提供する産業) 国が経済発展すると、第一次産業から第二次産業へ、そして第三次産業へとシフトしていく傾向があります。これを「産業構造の高度化」と呼びます。 使用したデータ World Bankが提供している以下のデータを使用しました: 第一次産業: Agriculture, forestry, and fishing, value added (% of GDP) 第二次産業: Industry (including construction), value added (% of GDP) 第三次産業: Services, value added (% of GDP) これらは各産業がGDP(国内総生産)に占める割合を示しています。 分析対象国 今回は、経済発展段階や地域が異なる10カ国を選びました: 日本(JPN): 先進国・アジア 中国(CHN): 新興国・急成長 アメリカ(USA): 先進国・北米 ドイツ(DEU): 先進国・欧州 インド(IND): 新興国・南アジア 韓国(KOR): 先進国・アジア インドネシア(IDN): 新興国・東南アジア ベトナム(VNM): 新興国・急成長 シンガポール(SGP): 先進国・都市国家 タイ(THA): 新興国・東南アジア ポーランド(POL): 中所得国・欧州 Pythonコード 以下が実際に使用したコードです。 # 第一次: https://data.worldbank.org/indicator/NV.AGR.TOTL.ZS # 第二次: https://data.worldbank.org/indicator/NV.IND.TOTL.ZS # 第三次: https://data.worldbank.org/indicator/NV.SRV.TOTL.ZS # 産業付加価値GDP import pandas as pd import matplotlib.pyplot as plt # CSVデータ取得 df_1 = pd.read_csv('1.csv', skiprows=3) df_2 = pd.read_csv('2.csv', skiprows=3) df_3 = pd.read_csv('3.csv', skiprows=3) # 国名のマッピング country_names = { 'JPN': 'Japan', 'CHN': 'China', 'USA': 'United States', 'DEU': 'Germany', 'IND': 'India', 'KOR': 'South Korea', 'IDN': 'Indonesia', 'VNM': 'Vietnam', 'SGP': 'Singapore', 'THA': 'Thailand', 'POL': 'Poland', } def to_chart(df, codes, begin, end, title, filename): plt.figure(figsize=(14, 9)) for code in codes: data = df[df['Country Code'] == code] years = [str(year) for year in range(begin, end)] dict_data = data[years].iloc[0].to_dict() years = list(dict_data.keys()) values = list(dict_data.values()) line = plt.plot(years, values, marker='o', linewidth=2, markersize=4) # 線の最初(スタート地点)に国名ラベルを表示 plt.text(years[0], values[0], f'{country_names.get(code, code)} ', verticalalignment='center', horizontalalignment='right', fontsize=9, color=line[0].get_color(), fontweight='bold') plt.xlabel('Year', fontsize=11) plt.ylabel('Value (%)', fontsize=11) plt.title(f'{title} ({begin}-{end})', fontsize=13) plt.grid(True, alpha=0.3) plt.xticks(rotation=45) plt.tight_layout() # 画像として保存 plt.savefig(filename, dpi=300, bbox_inches='tight') plt.close() # 3つのグラフを生成 to_chart(df_1, list(country_names.keys()), 1997, 2024, "第一次産業 (Agriculture, forestry, and fishing)", "chart_primary.png") to_chart(df_2, list(country_names.keys()), 1997, 2024, "第二次産業 (Industry including construction)", "chart_secondary.png") to_chart(df_3, list(country_names.keys()), 1997, 2024, "第三次産業 (Services)", "chart_tertiary.png") 分析結果 第一次産業(農業・林業・漁業) ...

January 26, 2026 · 2 min

データが暴く物価高騰の真実 - エネルギー価格と為替の相関分析で見えた意外な結論

はじめに - 「円安=物価高」という通説への挑戦 「円安だから物価が上がる」――ニュースで繰り返されるこのフレーズ。本当にそうなのか?統計総局の消費者物価指数(CPI)と為替レートのデータを使って、この仮説を検証してみた。 データ準備 使用データ 消費者物価指数:統計総局『tmi2020a.csv』(2020年基準) 為替レート:みずほ銀行『quote.csv』(日次データを月次平均化) 期間:2023年1月〜2026年1月(3年間) 前処理 import pandas as pd import matplotlib.pyplot as plt from scipy.stats import linregress # CPI読み込み(ヘッダー5行スキップ) cpi_df = pd.read_csv('./tmi/tmi2020a.csv') cpi_clean = cpi_df.iloc[5:].copy().reset_index(drop=True) cpi_clean['エネルギー'] = pd.to_numeric(cpi_clean['エネルギー'], errors='coerce') # 為替読み込み(日次→月次平均) fx_df = pd.read_csv('./doru/quote.csv', encoding='utf-8') fx_clean = fx_df.iloc[2:].copy() fx_clean['日付'] = pd.to_datetime(fx_clean.iloc[:, 0], format='%Y/%m/%d') fx_clean['USD'] = pd.to_numeric(fx_clean.iloc[:, 1], errors='coerce') fx_clean['年月'] = fx_clean['日付'].dt.strftime('%Y%m') monthly_fx = fx_clean.groupby('年月')['USD'].mean().reset_index() monthly_fx.columns = ['年月', 'ドル円'] # データ結合 recent = cpi_clean[cpi_clean['類・品目'] >= '202301'].copy() data = recent.merge(monthly_fx, left_on='類・品目', right_on='年月', how='left') まず全体像を把握する グラフから見える3つの真実 1. エネルギー価格の激しい変動 オレンジ線を見ると、2023年初頭の135から2023年秋には104まで急落(-23%)。その後も上下を繰り返し、最終的に122で着地。地政学リスクがそのまま価格に反映されている。 2. 食料価格の不可逆的上昇 ピンク線は2023年から2025年にかけてほぼ一直線に上昇(109→127、+16%)。一度上がった食品価格は下がらない構造的問題が見える。 3. 総合指数の「マイルド感」 青線は安定的に上昇(104→112、+7%)。しかし国民が実感する物価高は、日常的に買う食料品の16%上昇の方。統計と実感の乖離がここに現れている。 ...

January 23, 2026 · 2 min