コンテンツにスキップ

第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}℃")