무역 통계 (유엔)에서 읽을 수있는 것 (1) 준비
4796 단어 무역 통계pandasJupytercolaboratory
(목적) 무역 통계(실제 데이터) 처리 경험을 하는 사람을 늘린다
현재 정부 통계 데이터는 다양한 각도에서 분석 가능한 형태로 제공됩니다. 그러나 데이터를 분석하고 거기에서 의미를 읽으려는 움직임은 아직 덜 느껴집니다. 무역 통계와 같이 중요하고 액세스 수가 많은 통계 데이터가 좀더 활용될 수 있다고 생각해, 간편하게(그렇지는 않습니다만,) 활용할 수 있는 기사를 쓰고 있습니다.
(상정 독자)
무역 통계의 데이터를, 우선은, 좀 더 세세하게 집계해, 분석하고 싶다고 하는 사람용입니다. 구체적으로는, 싱크 탱크의 신인이나, 대학원생으로, 통계 데이터 분석의 스킬이 있으면 좋다고 평상시로부터 생각하고 있는 사람용입니다. SQL을 사용한 경험이 없는 사람이, 이 기사를 실천해, 조금의 노력으로, 간편하게 SQL을 사용할 수 있게 되면, 돈 것입니다.
필요한 기술은 적당히 장애물이 높습니다. jupyter에서 sql,pandas를 사용하여 집계합니다. 여기의 설명은 google의 collaboratory (무료입니다.)
라는 구조가 전제입니다. jupyter는 PC에서도 구성할 수 있지만 클라우드에서 실행할 수 있는 공동체가 유용합니다.
데이터
kaggle sqlite 형식으로 남아 있습니다. 주요 데이터는 유엔의 다국간 무역 데이터로, 여기 로부터 취득해, 일본의 무역 데이터도 부가하고 있습니다. 데이터는 2014 년이므로 조금 오래되었습니다.
다국간 데이터이므로, 예를 들어 일본에서 중국으로의 자동차 수출을 보고, 중국의 자동차 수입을 보고, 일본은 몇번째의 수출 금액인지를 조사할 수 있습니다. 중국과 일본의 2국간 밖에 모르는 무역 통계에서는, 이것은 할 수 없습니다. 또한 최신 유엔 데이터는 여기입니다.
준비
jupyter 환경 준비하고 데이터 (database.sqlite)를 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)
읽을 수 있는 것
중국, 미국이 일본의 주요 수출처(당연하네요.)
Reference
이 문제에 관하여(무역 통계 (유엔)에서 읽을 수있는 것 (1) 준비), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/zanjibar/items/c623a1bccc331f476002
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(무역 통계 (유엔)에서 읽을 수있는 것 (1) 준비), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/zanjibar/items/c623a1bccc331f476002텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)