python解析各城市历史天气数据

1 背景介绍

python解析各城市历史天气数据

2 基本思路

获取原始数据,解析,然后保存到excel表格里面。

以浙江省杭州市西湖区2016年9月到2017年4月的 历史天气数据为例,最终成果如下:
在这里插入图片描述

3 核心代码

对于数据比较少时,可以先保存到文本文档里面(如某一个城市几月到几月),然后解析即可。

import pandas as pd# 读取文本文件并分割成行
with open(r'origin_data_by_line.txt', 'r', encoding='utf-8') as file:    lines = file.readlines()# 将每4行数据合并为一个列表项,每个列表项代表一行表格数据
table_data = [lines[i:i + 7] for i in range(0, len(lines), 7)]# 将列表中的每个四行组转换为单个字符串,并去除空白字符
table_data = [' '.join(group).strip() for group in table_data]# 将数据分割成单独的列,这里假设每行数据之间是用换行符分隔的
# 并且每行内的字段之间是用空格分隔的
columns = table_data[0].split()  # 假设第一行是表头
data = [line.split() for line in table_data[1:]]  # 剩下的是数据行# 创建DataFrame
df = pd.DataFrame(data, columns=columns)# 保存到Excel文件
df.to_excel('output.xlsx', index=False)

r’origin_data_by_line文本文件是从历史天气数据网站copy后的数据,格式为一行一行的文本:

日期
星期
最高气温
最低气温
天气
风向
级别
2016-09-01
星期四
3323℃
阵雨
西南风
42016-09-02
星期五
3422℃
晴
西风
12016-09-03
星期六
3523℃
晴
东风
12016-09-04
星期日
3224℃
多云
东风
3...

如以杭州西湖区2017年4月份为例:
https://m.tianqi.com/lishi/xihu/201704.html
在这里插入图片描述
该数据copy后粘贴,为一行一行的,不能直接使用,需要重新处理后,生成表格才能用。

如果涉及到很多城市,很多历史数据如何处理呢?

很简单,对每一个城市进行遍历,遍历对应的日期,然后解析。这里需要用到爬虫知识,即先解析该网站,获取到对应的web数据,接着从里面逐步解析,最后得到数据。

最核心的解析代码上面已经贴出来了,如果需要完整爬虫爬取某城市的数据,可以在评论区评论,后面笔者有空会更新,还是本科时候写爬虫比较多,如今已经几年没有写爬虫代码了,需要重新弄下环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/34650.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【并集查询】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…

组件中的生命周期

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了Flutter中如何使用三方包相关的内容,本章回中将介绍Widget的生命周期.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 本章回中介绍的生命周期是指Widget从创建到结果的整个过程,这里提到的Widget是一个泛…

DAY35|动态规划Part03|LeetCode:01背包问题 二维、01背包问题 一维、416. 分割等和子集

目录 01背包理论基础(一) 基本思路 C代码 01背包理论基础(二) 基本思路 C代码 LeetCode:416. 分割等和子集 基本思路 C代码 01背包理论基础(一) 题目链接:卡码网46. 携带研究材料 文字…

Shopee大卖选品策略揭秘:印尼市场选品与成本分析案例

东南亚电商市场愈发成熟,越来越多做跨境的卖家转向本土。但对于“本土化选品运营”这个问题还相当疑惑!看别人本土店销量飞起,自己却还在就纠结做啥能挣钱? 别急,今天EasyBoss根据之前合作的Shopee大卖分享的经验&…

鸿蒙特色实战2

服务卡片开发 创建服务卡片 创建一个新的工程后,可以通过如下方法进行创建服务卡片: 创建服务卡片包括如下两种方式: 选择模块(如entry模块)下的任意文件,单击菜单栏File > New > Service Widget创…

php基础:文件处理2

1.文件属性 当我们在程序中操作文件时,可能会使用到文件的一些常见属性,比如文件的大小、类型、修改时间、访问时间以及权限等等。PHP 中提供了非常全面的用来获取这些属性的内置函数,如下表所示。 2.目录操作 新建目录:mkdir(路…

激活函数在神经网络中的应用与选择

目录 ​编辑 Sigmoid函数 代码示例与分析 Tanh函数 代码示例与分析 ReLU函数 代码示例与分析 Leaky ReLU函数 代码示例与分析 PReLU函数 代码示例与分析 ELU函数 代码示例与分析 SELU函数 代码示例与分析 Softmax函数 代码示例与分析 结论 在深度学习领域&am…

如何在.NET 8.0 上安装 FastReport 并创建简单报告(下)

FastReport 是一款灵活而强大的报告工具。它允许用户以各种格式访问数据源并以可视化方式呈现它们。使用 FastReport 创建的报告可以在用户界面中使用拖放逻辑轻松设计,并转换为不同的格式(PDF、Excel、Word 等)。>> 如何在.NET 8.0 上…

SpringBoot期末知识点大全

一、学什么 IoC AOP:面向切面编程。 事物处理 整合MyBatis Spring框架思想! 二、核心概念 问题:类之间互相调用/实现,导致代码耦合度高。 解决:使用对象时,程序中不主动new对象,转换为由外部提…

vscode CMakeLists中对opencv eigen的引用方法

CMakeLists.txt 项目模式(只有一个main函数入口) cmake_minimum_required(VERSION 3.5)project(vsin01 VERSION 0.1 LANGUAGES CXX)set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)set(OpenCV_DIR G:/MinGW_Opencv/opencv4.10/opencv…

11.15【JAVA】【网络编程】【DEBUG】

代码以开源至cqujk/CquJavaEE 的myExp-socketCode分支,欢迎拷打 参考REPO Java 11: Standardized HTTP Client API 没反应 这是因为这应当是两个线程,当server创建好套接字后,进入accept时,就不会继续向下运行,客户端自然也就无法发送请求 首先要保证server进入accept(这个…

华为HCIE-Datacom认证笔试+实验考试介绍

华为HCIE数通认证考试是面向那些希望成为数通网络领域专家的人员,考试通常两部分:笔试和实验考试。 考试科目: HCIE-Datacom笔试考试内容: HCIE-Datacom V1.0考试覆盖数据通信领域路由交换高阶技术、企业网络架构全景、园区网络…

Android环境搭建

Android环境搭建 第一步:安装 Homebrew 执行以下命令来安装 Homebrew: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"检测是否安装成功: brew --version第二步:安装 No…

WLAN漫游

定义 WLAN漫游 是指STA在不同AP覆盖范围之间移动且保持用户业务不中断的行为 实现WLAN漫游的两个AP必须使用相同的SSID和安全模板(安全模板名称可以不同,但是安全模板下的配置必须相同),认证模板的认证方式和认证参数也要配置相…

排序2(万字详细版)

一 快速排序 快速排序是Hoare于1962年提出的⼀种⼆叉树结构的交换排序⽅法,其基本思想为:任取待排序元素 序列中的某元素作为基准值,按照该排序码将待排序集合分割成两⼦序列,左⼦序列中所有元素均⼩ 于基准值,右⼦序列…

[ACTF2020 新生赛]Include

感觉毫无头绪e一下,发现要使用伪协议 伪协议:是PHP自己支持的一种协议与封装协议,简单说就是PHP定义的一种特殊访问资源的方法。 2.什么时候用PHP伪协议? 可能遇到的文件包含函数: 1、include 2、require 3、include_once 4、r…

链表【Lecode_HOT100】

1.相交链表No.160 public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if(headAnull||headBnull) return null;ListNode pAheadA;ListNode pBheadB;while(pA!pB){pA(pAnull)?headB:pA.next;pB(pBnull)?headA:pB.next;}return pA; }2.反转链表No.206 pu…

时频转换 | Matlab格拉姆角和场Gramian angular summation field一维数据转二维图像方法

目录 基本介绍程序设计参考资料获取方式 基本介绍 时频转换 | Matlab格拉姆角和场Gramian angular summation field一维数据转二维图像方法 程序设计 clear clc % close all load x.mat % 导入数据 x x(1:5120); % 本数据只选择5120个点进行分析 fs 6400 ; % 数据采样频…

试题转excel;pdf转excel;试卷转Excel,word试题转excel

一、问题描述 一名教师朋友,偶尔会需要整理一些高质量的题目到excel中 以往都是手动复制搬运,几百道题几乎需要一个下午的时间 关键这些事,枯燥无聊费眼睛,实在是看起来就很蠢的工作 就想着做一个工具,可以自动处理…

借助vector实现进制转换详解

进制转换,没什么可说的,大一级别的水平,不过在某些考研题目中可能会涉及到顺序栈的实现,本贴不使用顺序栈,用STL里面的vector模拟一下:关键在于想清楚【除留取余】的逻辑,至于用什么结构存放中间…