Python - 気象データの集計とグラフ表示

公開日:2019-06-22 更新日:2019-06-26
[Python]

1. 概要

pandas を使って、気温と降水量の集計とグラフ表示を行います。



2. 気温と降水量の集計とグラフ表示

気象庁のサイトから 気象データをダウンロードして、 気温と降水量をグラフで表示します。

以下の条件で CSV ファイルをダウンロードします。
出力項目は、選択する順番で並び順が変わるため要注意。

地点:東京
項目:日平均気温、日最高気温、日最低気温、降水量の日合計
期間:2018/1/1 ~ 2018/12/31

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv(
        "data.csv", 
        encoding = "Shift_JIS",  # 文字コード
        header = None,           # CSVにヘッダー行がない、または使わない
        skiprows = 6,            # 先頭の6行を無視します
        usecols = [0, 1, 4, 7, 10], # 読み込む列
        names = ['年月日','平均気温','最高気温','最低気温','降水量'], # 列名
        index_col = 0,           # 最初の列をインデックスにする
        parse_dates = ['年月日'] # 年月日を datetime にする
)

# 月単位で集計します
# freq:m = 月単位、10d = 10日単位、d = 1日単位
df2 = df.groupby( pd.Grouper(freq = 'm') ).mean() #平均

# インデックスを「月」だけにする
df2.index = [ d.strftime('%m') for d in df2.index ]

ax1 = df2[['平均気温', '最高気温','最低気温']].plot(kind = 'line')

df2[['降水量']].plot.bar(ax = ax1, rot = 0)
plt.show()