Excelデータを読み込む

ExcelデータをPythonで読み込みたい。anaconda search -t conda xls とかすると、いろんなパッケージがヒットするんだけれど、ソコではヒットしなかったxlrdというパッケージをまずは conda でインストールする

Excelデータの準備


京都に単身赴任中、「京都は暑いでしょう?」と何度も言われたので、ソレを検証してみよう。気象庁のサイトから、2016年7月の東京の最高気温と京都の最高気温のデータを取得して、Excelでまとめた。

Excelデータを読み込むコード

というワケで、見よう見まねで書いてみたコードがコレで、東京と京都の平均気温を計算して、表示する。numpyを使っているので、mean()するだけで、平均値を求められる。

import xlrd
import os.path
import numpy as np
xlfile = "test.xlsx"
if os.path.exists(xlfile):
    xls = xlrd.open_workbook(xlfile)
    sheet1 = xls.sheet_by_index(0)
    nrows = sheet1.nrows-1
    ncols = sheet1.ncols 
    data = np.zeros(ncols*nrows).reshape((nrows, ncols))
    for r in range(1, nrows):
        for c in range(0, ncols):
            data[r-1,c] = sheet1.cell(r,c).value
    tokyo = data[:,1]
    kyoto = data[:,2]
    msg = "Tokyo(mean): %.2f\nKyoto(mean): %.2f" % (tokyo.mean(), kyoto.mean())
    print(msg)

検定を実施

しかし、平均値をそれぞれ表示しても、東京と京都の気温差について語ることはできない。ココは有意水準 0.05 であるとして、t検定をしてみることにする。

scipyで簡単にt検定できた。ここは、京都のほうが暑いという仮説の検定をしたいので、本来は片側検定をすべきかな。とはいえ、p-value < 0.05となり、東京と京都の気温差はないという帰無仮説は棄却された。