やっと夏休みが終わってほっとしてますが、2学期が始まったら始まったで色々と大変です(+_+)。それにしても、今年の夏も暑かったですね~。今年は夏が特に長かった気がします。なんだか年々暑くなっていっている気がして毎年参ってしまうのですが、どれくらい暑くなっているのかと思いPythonでスクレイピングしてみました。データはgooの過去の天気から取得しました。1964年から2021年まで、1年ずつ取ると長くなるので4年ごとの各月の平均気温です。ちょっと力ずくのようなソースですが・・・、こんな感じで。
import requests
from bs4 import BeautifulSoup
import csv
import pandas as pd
def get_data(year, high_avg_list, row_avg_list):
for month in range(1,13):
add_str = "{0}{1:02d}00".format(year, month)
url = "https://weather.goo.ne.jp/past/662/" + add_str
r = requests.get(url)
soup = BeautifulSoup(r.content, "html.parser")
table_data = soup.find("table")
high_data = 0
count = 0
for red_data in table_data.select(".red"):
if red_data.text != '-':
count = count + 1
high_data = high_data + float(red_data.text)
high_avg = round(high_data / count, 2)
high_avg_list.append(high_avg)
row_data = 0
count = 0
for blue_data in table_data.select(".blue"):
if blue_data.text != '-':
count = count + 1
row_data = row_data + float(blue_data.text)
row_avg = round(row_data / count, 2)
row_avg_list.append(row_avg)
df_high = pd.DataFrame()
df_row = pd.DataFrame()
high_4 = [0,0,0,0,0,0,0,0,0,0,0,0]
row_4 = [0,0,0,0,0,0,0,0,0,0,0,0]
for year in range(1964,2022):
print(year)
high_avg_list = []
row_avg_list = []
get_data(year, high_avg_list, row_avg_list)
high_4 = [x + y for (x, y) in zip(high_4, high_avg_list)]
row_4 = [x + y for (x, y) in zip(row_4, row_avg_list)]
if year % 4 == 3:
df_high[year-3] = [round(n / 4, 2) for n in high_4]
df_row[year-3] = [round(n / 4, 2) for n in row_4]
high_4 = [0,0,0,0,0,0,0,0,0,0,0,0]
row_4 = [0,0,0,0,0,0,0,0,0,0,0,0]
with pd.ExcelWriter('tokyo_weather.xlsx') as writer:
df_high.to_excel(writer, sheet_name='high')
with pd.ExcelWriter('tokyo_weather.xlsx', mode='a') as writer:
df_row.to_excel(writer, sheet_name='row')
こちらで取得したExcelファイルとExcelで作ったグラフです。
あれ、、、予想に反してあんまり変わっていないような。。
最高気温
最低気温
これだけでは何とも言えないですが、グラフを見てもあんまり変わってないですよね~。でも、最近の夏は確実に暑い。暑い(+_+)これって、もしかして温暖化ではなくて空調のせい?とも考えられるのではないかと。以前、夏に東京ドームに野球観戦に行ったのですが、入り口のゲートが改札口と真逆の所にあり東京ドームを半周して空調の熱で死ぬかと思いましたが、ドーム毎冷やさなくてもいいんではないかと思ったりもします。。。