Python Pandas和matplotlib实现同期天气温度对比

目录

1、下载近两年的天气Excel数据

2、pandas加载Excel

3、将时间作为索引

4、按日计算最值、均值

5、选取近两年同期温度数据

6、同期温度曲线对比,共享y轴


1、下载近两年的天气Excel数据

一个免费的天气数据下载网址:METAR北京(机场)历史天气 (rp5.ru)

选择”北京天气“——”机场历史天气“——”下载历史天气“——选择时段——”选择到文件“——”下载“,即可将天气的excel的压缩包下载到本机。我们下载2023年和2024年的天气Excel数据。

2、pandas加载Excel

需要用到的包如下所示:

import pandas as pd
import time
import matplotlib.pyplot as plt
import numpy as np
import datetime

Pandas加载Excel数据

filepath1 = 'plt_graph_data\\23.xls'
filepath2 = 'plt_graph_data\\24.xls'

data1 = pd.read_excel(filepath1)
data2 = pd.read_excel(filepath2)
data_all = pd.concat([data1,data2])

print(data_all.head(2))

3、将时间作为索引

data_all['Time'] = pd.to_datetime(data_all['Time'],format='%d.%m.%Y %H:%M')
data_all.set_index('Time', inplace=True)#以时间为索引的时间序列值
data_all = data_all['Temperature']
print(data_all.head(2))

4、按日计算最值、均值

data_all = data_all.resample('24H').agg(func=['max','min','mean'])#上采样
print(data_all.head(2))
data_all.plot()

5、选取近两年同期温度数据

选择2024年6月至9月的数据:

t1 = datetime.datetime(year=2024,month=6,day=1,hour=0,minute=0,second=0) 
t2 = datetime.datetime(year=2024,month=9,day=18,hour=23,minute=59,second=59) 
data_this_year = data_all[(data_all.index >= t1) & (data_all.index <= t2)]#选取指定时段
data_this_year = data_this_year['max']
print(data_this_year.head(2))
data_this_year.plot()

选取2023年同期数据:

data_last_year = data_all[(data_all.index >= (t1 + pd.DateOffset(years=-1)))
                 & (data_all.index <= (t2 + pd.DateOffset(years=-1)))]#去年同期
data_last_year = data_last_year['max']
print(data_last_year.head(2))
data_last_year.plot()

6、同期温度曲线对比,共享y轴

figure,(ax1,ax2) = plt.subplots(1,2,dpi=600,sharex=False,sharey=True)
ax1.plot(data_last_year,linestyle='solid')
ax2.plot(data_this_year,linestyle='solid')

plt.setp(ax1.get_xticklabels(), rotation=90)
plt.setp(ax2.get_xticklabels(), rotation=90)

ax1.set_title('2023')
ax2.set_title('2024')

从对比数据来看,6月同期温度差不多,7月以后温度明显比去年高4、5度。今年实在是有点热。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值