当前位置: 首页 > news >正文

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度。今年实在是有点热。

相关文章:

  • 【计算机网络 - 基础问题】每日 3 题(二十三)
  • ArcGIS Desktop使用入门(三)常用工具条——拓扑(下篇:地理数据库拓扑)
  • 【机器学习】13-决策树2——决策树生成、剪枝
  • Ubuntu上如何优雅下载huggingface上某个gguf模型文件
  • 解决 ValueError: did not find HDF5 headers----安装netCDF4报错
  • Elasticsearch分布式搜索引擎入门
  • Anaconda虚拟环境创建和配置以使用PyTorch和DGL
  • 机器学习课程学习周报十三
  • LLM - 使用 XTuner 指令微调 多模态大语言模型(InternVL2) 教程
  • OJ在线评测系统 后端 判题机模块预开发 架构分析 使用工厂模式搭建
  • 【在Linux世界中追寻伟大的One Piece】进程间通信
  • Rapid品牌SSL证书通配符单域名申请窍门
  • 背景图鼠标放上去切换图片过渡效果
  • docker笔记_数据卷、挂载
  • 2024年【烟花爆竹经营单位主要负责人】免费试题及烟花爆竹经营单位主要负责人考试技巧
  • Apache的基本使用
  • const let
  • CSS3 变换
  • HTML-表单
  • Javascript编码规范
  • jQuery(一)
  • Python实现BT种子转化为磁力链接【实战】
  • React Native移动开发实战-3-实现页面间的数据传递
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • 阿里云应用高可用服务公测发布
  • 大数据与云计算学习:数据分析(二)
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 基于Android乐音识别(2)
  • 解析 Webpack中import、require、按需加载的执行过程
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 力扣(LeetCode)22
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 想写好前端,先练好内功
  • 小程序 setData 学问多
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • const的用法,特别是用在函数前面与后面的区别
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​虚拟化系列介绍(十)
  • ​字​节​一​面​
  • !!Dom4j 学习笔记
  • ###项目技术发展史
  • #FPGA(基础知识)
  • #LLM入门|Prompt#3.3_存储_Memory
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • $refs 、$nextTic、动态组件、name的使用
  • (1)bark-ml
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三)Honghu Cloud云架构一定时调度平台
  • (十五)使用Nexus创建Maven私服