Help us understand the problem. What is going on with this article?

PythonでExcel(その2)

More than 3 years have passed since last update.

1年程前に書いたPythonでExcelを、pandasを使って書き換えてみます。

pandasの準備

Anacondaで環境を構築している場合は、pandasはインストール済です。
そうでない場合も、PyPIで簡単にインストールできます。

Excelのシートからデータを読み込む

このあたりの前フリについては、一年前に書いたとおりです。

単身赴任で京都に住んでた頃に「京都は暑いでしょう」ってよく言われていたので、検証のために2016年7月の東京と京都の日毎の最高気温のデータを気象庁からダウンロードしてExcelにまとめてみた。

20160831001.jpg

これ、見るだけで京都の方が暑いな。Pythonで解析するまでもないわ。でも、気を取り直して、両都市の平均気温を計算してみる。

一年前の記事では、numpyのarrayにExcelファイルの中身を読み込んだのですが、今回はpandasで読み込み、DataFrameに格納します。

read_excel2.py
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

グラフ描画

一年前の記事同様に、グラフを書いてみることにします。

read_excel2.py
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()

20170928_001.png

一年前の記事では悩みのタネだった、日付型のX軸についても分かりやすく表示することができました。

また、df.boxplot() あるいはdf.plot(kind='box') すれば箱ひげ図を、df.hist() あるいはdf.plot(kind='hist') するとヒストグラムを描くことができました。

20170928_004.png

以上のように、当初の目論見通り、東京と京都の夏の気温の違いについて、可視化することができました。


本日のまとめ

  • Pandasスゴい
  • DataFameスゴい

本日のコード

fukuit
最近、事務系の職場に異動したので、職業プログラマではなくなりました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away