1年程前に書いたPythonでExcelを、pandasを使って書き換えてみます。
pandasの準備
Anacondaで環境を構築している場合は、pandasはインストール済です。
そうでない場合も、PyPIで簡単にインストールできます。
Excelのシートからデータを読み込む
このあたりの前フリについては、一年前に書いたとおりです。
単身赴任で京都に住んでた頃に「京都は暑いでしょう」ってよく言われていたので、検証のために2016年7月の東京と京都の日毎の最高気温のデータを気象庁からダウンロードしてExcelにまとめてみた。
これ、見るだけで京都の方が暑いな。Pythonで解析するまでもないわ。でも、気を取り直して、両都市の平均気温を計算してみる。
一年前の記事では、numpyのarrayにExcelファイルの中身を読み込んだのですが、今回はpandasで読み込み、DataFrameに格納します。
import pandas as pd
import os.path
xlfile = "temperature.xlsx"
if os.path.exists(xlfile):
xls = pd.ExcelFile(xlfile)
sheet1 = xls.sheet_names(0)
df = pd.DataFrame(xls.parse(sheet1))
print(df.mean())
これだけで、temperature.xlsxに記載されているTokyo列とKyoto列の平均値を表示することができます。
% python read_excel2.py
Tokyo 29.732258
Kyoto 32.951613
dtype: float64
グラフ描画
一年前の記事同様に、グラフを書いてみることにします。
import pandas as pd
import os.path
xlfile = "temperature.xlsx"
if os.path.exists(xlfile):
xls = pd.ExcelFile(xlfile)
sheet1 = xls.sheet_names(0)
df = pd.DataFrame(xls.parse(sheet1))
print(df.mean())
df.plot()
一年前の記事では悩みのタネだった、日付型のX軸についても分かりやすく表示することができました。
また、df.boxplot()
あるいはdf.plot(kind='box')
すれば箱ひげ図を、df.hist()
あるいはdf.plot(kind='hist')
するとヒストグラムを描くことができました。
以上のように、当初の目論見通り、東京と京都の夏の気温の違いについて、可視化することができました。
本日のまとめ
- Pandasスゴい
- DataFameスゴい