2016/06/19 エクセルファイル(xls形式)について更新
Motivation
先日政府の統計データを使おうと思ってapiを使ってみたんですが使いづらい上に欲しいデータセットがなさそうだったので諦めました。代わりにcsvを直接読み込めればapiも何も無いだろうと思ったら上手く出来ました。以下そのやり方
(excelファイルは文字コードが不明で上手く行きませんでした)
(リンク先がxlsの場合)上手く行きました。xlsxは試していないので上手く行くか判りません。
Example
csv
今回は例として
統計表一覧 政府統計の総合窓口 GL08020103
の
1 人口,人口増減,面積及び人口密度-全国※,全国市部※,全国郡部※,都道府県※,市部※,郡部※,市町村※・旧市町村
のcsvを読み込みたいと思います。 urlは
"http://www.e-stat.go.jp/SG1/estat/Csvdl.do?sinfid=000012460662"
です。これを以下の様にread_csv関数に突っ込めばdataframeとしてpandasに読み込めます。
import pandas as pd url = "http://www.e-stat.go.jp/SG1/estat/Csvdl.do?sinfid=000012460662" #csvを読み込む関数 def read_csv(url): print(url) res = urllib.request.urlopen(url) res=res.read().decode('shift-jis') df = pd.read_csv(StringIO( res) ) return df #実行 read_csv(url)
実行結果
やったぜ
Excelファイル(xls )
今度は
統計表一覧 政府統計の総合窓口 GL08020103
から人口・世帯を読み込んでみます。
上と同様にして
url = "http://www.e-stat.go.jp/SG1/estat/GL08020103.do?_xlsDownload_&fileId=000003562952&releaseCount=1" #xlsを読み込む関数 def read_xls(url): print(url) res = urllib.request.urlopen(url) f = pd.ExcelFile(res) df = f.parse() return df #実行 read_xls(url)
実行結果
やったぜ