<Python, urllib> インターネット上のExcelファイルを読み込む。

インターネット上の転がっているExcelファイルを読み込む方法。

urllibライブラリを使うらしい。 Python2にはurllib2urllibがあったらしいが、Python3ではurllibだけらしい。

でサンプルコード。

In [1]: import pandas as pd

In [2]: import urllib

In [3]: link = 'http://www.soumu.go.jp/johotsusintokei/field/data/gt010102.xls'

In [4]: socket = urllib.request.urlopen(link)

In [5]: xls = pd.ExcelFile(socket)

In [6]: df = xls.parse(xls.sheet_names[0], header=2, index_col=0, skip_footer=9)

In [7]: df.T
Out[7]: 
          世帯    個人 企業(従業者100人以上) 事業所(従業者5人以上)
平成9年末    6.4   9.2          68.2         12.3
平成10年末    11  13.4          63.8         19.2
平成11年末  19.1  21.4          78.3         31.8
平成12年末    34  37.1          89.3         44.8
平成13年末  60.5  46.3          94.5           68
平成14年末  81.4  57.8          96.3         79.1
平成15年末  88.1  64.3          97.9         82.6
平成16年末  86.8    66          98.7         81.8
平成17年末    87  70.8          97.6         85.7
平成18年末  79.3  72.6          98.8         85.6
平成19年末  91.3    73          99.3            -
平成20年末  91.1  75.3          99.3            -
平成21年末  92.7    78          99.9            -
平成22年末  93.8  78.2          99.7            -
平成23年末    86  79.1          99.3            -
平成24年末  86.2  79.5          99.9            -
平成25年末  84.9  82.8          99.9            -

へー、、 上手に動くもんだね。。。

WinPython上でurllib.request.urlopenでエラーがでたら、それは、Proxy経由でないとインターネットに接続できないから。

お世話になったサイト。

www.atmarkit.co.jp

Python3のマニュアル君。

urllib

urllib パッケージを使ってインターネット上のリソースを取得するには — Python 3.4.3 ドキュメント

ExcelFile.parse

pandas.io.excel.ExcelFile.parse — pandas 0.16.0 documentation

ちなみに、、、

In [8]: df2 = pd.io.excel.read_excel('http://www.soumu.go.jp/johotsusintokei/field/data/gt010102.xls')

とすれば、直接ExcelファイルをデータフレームDataFrameに取り込める、、、