(비망) 재무부 무역 통계 데이터를 찾는 방법 ~ 커피 콩이 세계에서 가장 비싼 것은 어디입니까? ~

배경



커피책을 읽을 때,
「브라질의 커피콩 수입 평균 단가는 x엔(재무성 「커피 수입 통계」보다)」
라고 하는 기술이 있어서, 데이터 터치해 보고 싶다고 생각했습니다.

커피 수입 데이터 CSV 다운로드 절차



재무부 무역 통계 톱 페이지



검색 기능 사용법 : 특정 상품의 무역 조사




무역 통계는 9자리의 통계 품목 번호마다 집계하고 있으므로, 조사의 물품에 대한 9자리의 통계 품목 번호로 검색할 수 있습니다

통계 품목 번호를 확인하는 방법




9자리수의 통계 품목 번호에 대해서는, 세관 홈페이지에 게재되고 있는 수출 통계 품목표(수출의 경우)나 실행 관세율표(수입의 경우)로 조사할 수 있습니다.

품목 번호 확인 설명도



수입 통계 품목표(실행 관세율표)(2019년 4월 1일판)



제2부 식물성 생산품
제9류 커피, 차, 마테 및 향신료
h tp // w w. s와 ms. . jp / tf / 2019_4 / data / j_09. htm
커피(카페인을 제외하고 없는 것)의 품목 번호는 「090111000」같다

품별 국가별표에 의한 검색



h tp // w w. s와 ms. . jp/토케이/srch/그리고 x. htm? M=01&P=0

검색결과가 3000건 이하인 경우 csv다운로드 가능
내용은 이런 느낌.

월별로 볼 수 없습니까? 계절성도 보고 싶었다··.

파이썬으로 시각화 해보기


#%%
import pandas as pd
PATH_IN = "../data/coffee_2018.csv"

df = pd.read_csv(PATH_IN, skiprows=8, encoding="sjis")

if False:  # check
    df.shape
    #(45, 11)

    df.head(1).T
    """
    品目      0901.11-000
    国              '105
    国名          中華人民共和国
    第1単位            NaN
    第2単位             KG
    当月第1数量          NaN
    当月第2数量          NaN
    当月金額            NaN
    累計第1数量          NaN
    累計第2数量        83184
    累計金額          26624    
    """

    df.isnull().sum()
    """
    品目         0
    国          0
    国名         0
    第1単位      45
    第2単位       0
    当月第1数量    45
    当月第2数量    45
    当月金額      45
    累計第1数量    45
    累計第2数量     0
    累計金額       0
    dtype: int64
    """

# drop columns of all null
df = df.loc[:, df.isnull().sum() < 45]

if False:  # check
    df.shape  # (45, 6)

    df.head(1).T
    """
    目      0901.11-000
    国              '105
    国名          中華人民共和国
    第2単位             KG
    累計第2数量        83184
    累計金額          26624
    """

    df.nunique()
    """
    品目         1
    国         45
    国名        45
    第2単位       1
    累計第2数量    45
    累計金額      45
    """

# drop columns have only one value
df = df.loc[:, df.nunique()>1]

#df.head()
"""
      国       国名    累計第2数量      累計金額    en_per_kg
0  '105  中華人民共和国     83184     26624   320.061550
1  '106       台湾       347      1847  5322.766571
2  '110     ベトナム  98188365  20552045   209.312427
3  '111       タイ     75052     63408   844.854234
4  '117    フィリピン      5625      4217   749.688889
"""

# 金額単位は1000円(検索結果ページより)。kgあたり価格を算出
df["en_per_kg"] = df['累計金額'] * 1000 / df['累計第2数量']

# kgあたり単価が高い順
# df.sort_values(by="en_per_kg", ascending=False).head()
"""
618        ニューカレドニア(仏)      54     928  17185.185185
40  '548           レユニオン(仏)     201    2584  12855.721393
35  '537  セントヘレナ及びその附属諸島(英)      59     689  11677.966102
1   '106                 台湾     347    1847   5322.766571
14  '304            アメリカ合衆国   97025  493972   5091.182685
"""

# kgあたり単価が安い順
# df.sort_values(by="en_per_kg", ascending=True).head()
"""
       国       国名     累計第2数量      累計金額   en_per_kg
2   '110     ベトナム   98188365  20552045  209.312427
38  '542     ウガンダ    1198879    332196  277.088847
30  '410     ブラジル  111452987  35479175  318.333101
5   '118   インドネシア   30344490   9696931  319.561509
0   '105  中華人民共和国      83184     26624  320.061550
"""

import matplotlib.pyplot as plt
import seaborn as sns
import japanize_matplotlib
plt.figure(figsize=(10,4))
tmp = df.sort_values(by="en_per_kg", ascending=True)
barp = sns.barplot(data=tmp, x="国名", y="en_per_kg")
xx = barp.set_xticklabels(barp.get_xticklabels(), rotation=270)




1만엔/kg 넘어서 뭐야・・・
→뉴칼레도니아는 환상의 커피인 것 같습니다. 200g으로 3000엔 정도로 팔고 있다.
h tp // w w. 아쿠안 c. 이 m / 네 t 쇼 p / 쇼 p_f 라메. htm
분명히 버그가 아닌 것 같습니다.

이상

(처음으로 vscode 사용해 보았다. 시각화를 대화적으로 하는 설정 방법을 모른다. 이미지를 복사하는 방법도 (위 그림은 mac의 캡쳐 기능))

(세계지도에 매핑하고 싶다. 이번에 해보자)

좋은 웹페이지 즐겨찾기