Python:日本の牛肉供給国と国産牛の輸出先をプロットする

その買うを、もっとハッピーに。|ハピタス

かつては庶民には高嶺の花であった牛肉。すきやきも高価な牛肉ではなく安価な豚肉が代用されていた時代があった。しかし、80年代の急速な円高+90年代の牛肉自由化以降、庶民も不味くて食えない牛肉ではなく、何とか食べられる牛肉が安く入手できるようになった。前回のデータは不完全だったので、今回はより完全なデータを使って日本の牛肉輸入先と輸入額をプロットする。

スポンサーリンク

日本の牛肉輸入国と輸出国をプロットする

先ず、このサイトからデータをダウンロードしてくる。

from pandas import *

df = read_csv('bovineall.csv',usecols=['Year', 'Period','Trade Flow','Reporter', 'Partner', 'Commodity','Commodity Code','Trade Value (US$)'])
df.head()
Year Period Trade Flow Reporter Partner Commodity Code Commodity Trade Value (US$)
0 2017 2017 Import Japan World 201 Meat of bovine animals; fresh or chilled 1927315843
1 2017 2017 Export Japan World 201 Meat of bovine animals; fresh or chilled 85737292
2 2017 2017 Import Japan Australia 201 Meat of bovine animals; fresh or chilled 875429589
3 2017 2017 Export Japan Bahrain 201 Meat of bovine animals; fresh or chilled 30557
4 2017 2017 Export Japan Belgium 201 Meat of bovine animals; fresh or chilled 1569718
df_world = df[df['Partner'] == 'World']
df_countries = df[df['Partner'] != 'World']
df_imports = df[df['Trade Flow'] == 'Import']
df_countries_imports = df_countries[df_countries['Trade Flow'] == 'Import']
df_countries_exports = df_countries[df_countries['Trade Flow'] == 'Export']
df_world_imports=df_world[df_world['Trade Flow'] == 'Import']
GROUPING_PARTNERFLOW = ['Partner','Trade Flow']
groups = df_countries.groupby(GROUPING_PARTNERFLOW)

GROUP_PARTNERFLOW= ('Canada','Import')
groups.get_group( GROUP_PARTNERFLOW ).tail(12)
Year Period Trade Flow Reporter Partner Commodity Code Commodity Trade Value (US$)
6 2017 2017 Import Japan Canada 201 Meat of bovine animals; fresh or chilled 19376571
44 2017 2017 Import Japan Canada 202 Meat of bovine animals; frozen 52053845
81 2017 2017 Import Japan Canada 20610 Offal, edible; of bovine animals, fresh or chi… 34248928
91 2017 2017 Import Japan Canada 20621 Offal, edible; of bovine animals, tongues, frozen 12261787
111 2017 2017 Import Japan Canada 20629 Offal, edible; of bovine animals, (other than … 2477665

ドルを円(1ドル=112.478円)に変換して輸入国を表示する。

a=df_countries_imports
b=a[(a["Commodity Code"]==201)|(a["Commodity Code"]==202)].groupby(['Partner'])['Trade Value (US$)'].aggregate(sum)
for i in range(len(b)):
    b[i] = b[i]*112.478
b.sort_values(ascending=False).head()
Partner
Australia      174485215347
USA            151026153207
New Zealand     11243088521
Canada           8034350330
Mexico           4846751030
Name: Trade Value (US$), dtype: int64

輸入国をプロットする。

from matplotlib.pyplot import *
from matplotlib.font_manager import FontProperties
from matplotlib import rcParams
import matplotlib.patches as mpatches
style.use('ggplot')

rcParams["font.size"] = "22"
fp = FontProperties(fname='/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf', size=54)
rcParams['font.family'] = fp.get_name()

fig, ax = subplots(figsize=(20,12))
b.sort_values(ascending=False, inplace=False).plot(kind='barh')
xticks(np.arange(0,2.1e11,1e11/4),
   ['{}億'.format(int(x/1e9)) if x > 0 else 0 for x in np.arange(0,2.1e12,1e12/4)])
ax.legend(["輸入額"],loc='upper right', prop={'size': 26});

留学中はUSDA choiceのブラックアンガスだけを食べていたが、日本に帰って来てからは国産牛しか食わなくなった。とは言っても、生活保護世帯以下の生活を強いられている超極貧世帯の我が家では、上州牛や上州和牛、いなげやブランドの仙台黒毛和牛ぐらいしか手が出ない。たまには、SATOブリアンで美味い肉をたらふく食べてみたいものである。

今度は輸出国を表示する。

d=df_countries_exports
e=d[(d["Commodity Code"]==201)|(d["Commodity Code"]==202)].groupby(['Partner'])['Trade Value (US$)'].aggregate(sum)
for i in range(len(e)):
    e[i] = e[i]*112.478
e.sort_values(ascending=False).head()
Partner
China, Hong Kong SAR    4844390229
Cambodia                4111800657
USA                     3026909742
Other Asia, nes         1371854798
Singapore               1354049643
Name: Trade Value (US$), dtype: int64
fig, ax = subplots(figsize=(20,12))
e.sort_values(ascending=False, inplace=False).plot(kind='barh')
xticks(np.arange(0,5.1e9,1e9/2),
   ['{}億'.format(int(x/1e9)) if x > 0 else 0 for x in np.arange(0,5.1e10,1e10/2)])
ax.legend(["輸出額"],loc='upper right', prop={'size': 26});

香港、カンボジア(中国)、アメリカ、台湾、シンガポール、タイ、オランダ、マカオ、ラオス、イギリスがトップ10に名を連ねている。Other Asia, nesというのは台湾の事を指すらしく、台湾は国連加盟国ではないのでこういう扱いになっているようである。

スポンサーリンク

農林水産省データとの比較

農林水産省のサイトからデータをダウンロードしてくる。

df1 = read_excel("beef.xls")
df1.head(10)
品目別輸入実績 Unnamed: 1 Unnamed: 2 Unnamed: 3
0 牛肉 NaN NaN NaN
1 NaN NaN NaN NaN
2 2017年 NaN NaN NaN
3 国名 単位 数量 金額(千円)
4 世界(計) KG 573978087 350476375
5 オーストラリア KG 288260093 174485109
6 アメリカ合衆国 KG 239676439 150660553
7 ニュージーランド KG 15768197 11223298
8 カナダ KG 18721791 8018139
9 メキシコ KG 9399576 4839000
df1.dtypes
品目別輸入実績       object
Unnamed: 1    object
Unnamed: 2    object
Unnamed: 3    object
dtype: object
df1["Unnamed: 3"] = to_numeric(df1["Unnamed: 3"][5:][:16])
df1.dtypes
品目別輸入実績        object
Unnamed: 1     object
Unnamed: 2     object
Unnamed: 3    float64
dtype: object
df1 = df1.drop(['Unnamed: 1', 'Unnamed: 2'], axis=1)
fig, ax = subplots(figsize=(20,12))
df1[5:][:16].set_index('品目別輸入実績').plot(ax=ax,kind='barh')
xticks(np.arange(0,2.1e8,1e8/4),
   ['{}億'.format(int(x/1e6)) if x > 0 else 0 for x in np.arange(0,2.1e9,1e9/4)])
ax.legend(["輸入額"],loc='upper right', prop={'size': 26})
ax.set_ylabel('輸入国')
ax.set_xlabel('輸入額(円)');

国連データと農林水産省データを照らし合わせると微妙に違う。例えば、チリとデンマークの順位が入れ替わっていたり、輸入額にも若干の違いがあったりする。どっちのデータが正しいのかは分からんが、まぁ、細かいことは気にしなくてもいいだろう。

参考サイトhttps://nbviewer.jupyter.org/

スポンサーリンク
スポンサーリンク