第2章 過去の気温
1 データの準備
指定した日の過去の気温、降水量を表示するページを作成します。
まず、過去10年間の気温、降水量をダウンロードします。以下にアクセスします。
https://www.data.jma.go.jp/gmd/risk/obsdl/index.php
ここで地点を都道県内の自分の所在地を選びます。 次に「項目を選ぶ」で「日最高気温」と「日最低気温」をチェックします。 また、「降水」で「降水量の日」合計をチェックします。
次に期間を選びます。過去10年分を選びます。
最後に表示オプションで「利用上注意が必要なデータの扱い」では「値を表示(格納)しない。」を選びます。
「観測環境などの変化の前後で、値が不均質となったデータの扱い」では、「観測環境などの変化前の値を表示(格納)しない。」を選びます。
「ダウンロード」の「日付の形式」を「日付リテラルで格納」とします。
これで「CSVファイルをダウンロード」を選択します。
2 ページの作成
st_kion.py ファイルに以下を作成します。
import streamlit as st
st.title('過去の気温')
これを実行し、確認します。
セレクトボックスを配置します。 月は1~12、日は1~31で選べるようにします。
tuki = st.selectbox("月", [1,2,3,4,5,6,7,8,9,10,11,12])
hi = st.selectbox("日", options=[x for x in range(1,32)])
3 データの表示
データフレームにデータを読み込みます。インデックスを年に設定します。項目名は分かりやすいように書き換えます。
import pandas as pd
df = pd.read_csv("data/kion.csv")
まず、年月日をdatetime型に変換します。
df['年月日'] = pd.to_datetime(df['年月日'])
そして、セレクトボックスで指定した月と日を抜き出します。
df2 = df[(df["年月日"].dt.month == tuki) & (df["年月日"].dt.day == hi)]
4 平均の表示
最高気温、最低気温の平均を求めます。round関数で小数点以下2桁に四捨五入します。
kion_max = df2['最高気温(℃)'].mean().round(2)
kion_min = df2['最低気温(℃)'].mean().round(2)
メトリクスで表示します。
st.metric("平均最高気温", f"{kion_max}℃")
st.metric("平均最低気温", f"{kion_min}℃")