気象庁の過去天気をダウンロードし集計

qiita.com

過去天気ダウンロード

www.data.jma.go.jp

f:id:imabari_ehime:20200108092613p:plain

  • 今治の天気概要はないため松山の天気概要を取得
  • 日付に曜日を表示にチェックを入れて曜日を追加

プログラム

  • 天気概要から天気情報を分解、天気ごとにカテゴリ変数に変換し集計する
import pandas as pd

import japanize_matplotlib
import matplotlib.pyplot as plt

df = pd.read_csv("matsuyama.csv", encoding="cp932", skiprows=4, names=["date", "week", "weather"])

df

# 天気ごとに分解
df1 = df["weather"].str.split("後|一時|時々|、", expand=True)

# 空文字を欠損値に置換
df1.mask(df1 == "", inplace=True)

# 結合
df2 = pd.concat([df["week"], df1], axis=1)

df3 = pd.melt(df2, id_vars="week").drop("variable", axis=1).dropna()

# 伴うも条件に追加
df3["value"] = df3["value"].str.strip().str.replace("を伴う", "").dropna()

# カテゴリ変数に変換
df4 = pd.get_dummies(df3, columns=["value"], prefix="", prefix_sep="")

# 集計
df5 = df4.pivot_table(index="week", aggfunc="sum")

# 晴グラフ
df5.plot.barh(y=["快晴", "晴"], legend=False, stacked=True)

# 雨グラフ
df5.plot.barh(y=["雨", "大雨", "暴風雨"], legend=False, stacked=True)

f:id:imabari_ehime:20200108113622p:plain

f:id:imabari_ehime:20200108113641p:plain

今後できたら

tenki.jp

  • まず後(のち)で分解して1:1、分解したものを一時3:1、時々1:1で分ければ集計できそう。