무역 통계 (유엔)에서 읽을 수있는 것 (1) 준비

(목적) 무역 통계(실제 데이터) 처리 경험을 하는 사람을 늘린다



현재 정부 통계 데이터는 다양한 각도에서 분석 가능한 형태로 제공됩니다. 그러나 데이터를 분석하고 거기에서 의미를 읽으려는 움직임은 아직 덜 느껴집니다. 무역 통계와 같이 중요하고 액세스 수가 많은 통계 데이터가 좀더 활용될 수 있다고 생각해, 간편하게(그렇지는 않습니다만,) 활용할 수 있는 기사를 쓰고 있습니다.

(상정 독자)



무역 통계의 데이터를, 우선은, 좀 더 세세하게 집계해, 분석하고 싶다고 하는 사람용입니다. 구체적으로는, 싱크 탱크의 신인이나, 대학원생으로, 통계 데이터 분석의 스킬이 있으면 좋다고 평상시로부터 생각하고 있는 사람용입니다. SQL을 사용한 경험이 없는 사람이, 이 기사를 실천해, 조금의 노력으로, 간편하게 SQL을 사용할 수 있게 되면, 돈 것입니다.
필요한 기술은 적당히 장애물이 높습니다. jupyter에서 sql,pandas를 사용하여 집계합니다. 여기의 설명은 google의 collaboratory (무료입니다.)
라는 구조가 전제입니다. jupyter는 PC에서도 구성할 수 있지만 클라우드에서 실행할 수 있는 공동체가 유용합니다.

데이터



kaggle sqlite 형식으로 남아 있습니다. 주요 데이터는 유엔의 다국간 무역 데이터로, 여기 로부터 취득해, 일본의 무역 데이터도 부가하고 있습니다. 데이터는 2014 년이므로 조금 오래되었습니다.
다국간 데이터이므로, 예를 들어 일본에서 중국으로의 자동차 수출을 보고, 중국의 자동차 수입을 보고, 일본은 몇번째의 수출 금액인지를 조사할 수 있습니다. 중국과 일본의 2국간 밖에 모르는 무역 통계에서는, 이것은 할 수 없습니다. 또한 최신 유엔 데이터는 여기입니다.

준비


  • 위의 데이터 다운로드

  • jupyter 환경 준비하고 데이터 (database.sqlite)를 jupyter의 현재 디렉토리에 둡니다.
  • jupyter 환경은 공동 작업자에게 유용합니다. 그 때 데이터는 google drive에 두면 편리합니다. 참고는 여기
  • google 계정이있는 것은 죄송합니다. 전제로 하고 있습니다.

  • sql, python, pandas, jupyter 정도 할 수 없다고 좋지 않다고 생각한다면, 꼭 노력하고 준비로 환경이라고 봐 주세요.

  • jupyter 소개



    먼저, 사용하는 것을 import 하고 있습니다. sqlite3이 없으면,
    sudo apt install sqlite3에서 설치해 봅시다.
    import os,sys,re
    import sqlite3
    import pandas as pd
    import pandas.io.sql as psql
    import matplotlib
    import matplotlib.pyplot as plt
    
    db ='database.sqlite'
    conn = sqlite3.connect(db)
    # mysql での desc table名 相当
    desc = 'PRAGMA table_info([{table}])'
    # mysql での show tables
    show_tables = "select tbl_name from sqlite_master where type = 'table'"
    

    다음은, 일본으로부터의 수출액의 랭킹을, 2014(오래 네요...)의 데이터로부터 추출해 그래프로 합니다. 이 그래프는 얼마든지 있으므로, 지루하지 않습니다만, 연습이라고 생각해 주세요.

    # ある国(origin)からの輸出の相手国別(dest)ランキング
    # 日本(jpn) を指定
    country='jpn'
    
    # まず合計を計算する
    # sql  文
    sql="""
    select sum(export_val) as total
    from hs07_2014
    where  origin = '{country}'
    """[1:-1]
    # 上記のSQL文の意味
    # sum(export_val) as total  輸出金額を合計して、項目 total に格納
    # 輸出元をcountryで指定(例えば、country='jpn'で日本に指定)
    # 2014年の多国間貿易統計(hs07_2014)から、輸出額を抜き出して合計する
    
    # sql 実行
    all = pd.read_sql(sql.format(country=country),conn)['total'].iloc[0]
    # pd.read_sql(sql文(sql...),データベース接続(conn))
    # 合計額を、all という変数に格納します。
    # sql の、{country} 部分は、実行するときに、変数 country に置換されます。
    # それが、sql.format(country=country) の部分
    # ['total'].iloc[0] は、結果が項目(total)と行(最初の行なので、0)を指定
    
    
    # 合計を表示
    print(all)
    
    sql="""
    select sum(export_val) as total,dest,c.name
    from hs07_2014 h,country_names c
    where  h.dest = c.id_3char  and 
    origin = '{country}'
    group by dest
    order by total desc
    """[1:-1]
    # 詳しくはのちほど書きますが、輸出金額を輸出先の国別ごとに集計しています。
    
    # 集計実行
    df = pd.read_sql(sql.format(country=country),conn)
    
    # 合計をつかって、percentの項目を追加
    df['percent'] = 100*(df['total']/all)
    
    # index に国名(name) をいれて、グラフの項目にします。
    df.index = df['name']
    # 最初の10つを抽出してグラフにします。
    df[['name','percent']].head(10).sort_values('percent',ascending=True).plot.barh(alpha=0.6)
    

    읽을 수 있는 것



    중국, 미국이 일본의 주요 수출처(당연하네요.)

    좋은 웹페이지 즐겨찾기