Python - 気象データの集計とグラフ表示
公開日:2019-06-22 更新日:2019-06-26
[Python]
1. 概要
pandas を使って、気温と降水量の集計とグラフ表示を行います。
2. 気温と降水量の集計とグラフ表示
気象庁のサイトから
気象データをダウンロードして、
気温と降水量をグラフで表示します。
以下の条件で CSV ファイルをダウンロードします。
出力項目は、選択する順番で並び順が変わるため要注意。
地点:東京
項目:日平均気温、日最高気温、日最低気温、降水量の日合計
期間:2018/1/1 ~ 2018/12/31
以下の条件で 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()