pandas处理天气数据

2024-06-23 19:20
文章标签 数据 处理 pandas 天气

本文主要是介绍pandas处理天气数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目分析

一、题目要求

  1. 使用Pandas读取数据;
  2. 现有的“date”列没有包含星期信息,需要根据其额外生成一列“week”,表示星
    期,例如“星期一”;
  3. 将温度处理成整型,例如将5℃处理成5,注意,其中含有非法字符,需要自行进
    行合理的处理;
  4. 风力列(wind)包含风向和风力等级,需要将其处理为两列,分别为
    wind_direction(风向)和wind_level(风力等级);
  5. 处理之后的列名包括’id’, ‘city’, ‘date’, ‘week’, ‘hightest_tem’, ‘lowest_tem’,
    ‘weather’, ‘wind_direction’, ‘wind_level’;将其重命名为’ID’, ‘城市’, ‘日期’, ‘星期’, ‘最
    高温度’, ‘最低温度’, ‘天气’, ‘风向’, ‘风力等级’;

二、对应的数据

数据详情

实现过程

1.读取数据

import pandas as pd
import datetime as dtdf = pd.read_csv('./data/day.csv')
print(df)

2.将日期处理成对应的星期几

def gen_week_day(date_str):'''根据日期生成星期:param date: :return: '''date = dt.datetime.strptime(date_str, '%Y-%m-%d')week_day = date.weekday()# print(week_day)week_dic = {0: "星期一", 1: "星期二", 2: "星期三", 3: "星期四", 4: "星期五", 5: "星期六", 6: "星期日"}return week_dic[week_day]

3.使用apply将那一列每一个值都使用gen_week_day

df['week'] = df['date'].apply(gen_week_day)  #
print(df)

4.将温度异常的数据提取成对应的温度,主要有如下图的问题,比如–和°℃

在这里插入图片描述

# 负号和对应的数字提取出来
def deal_tem(tem_str):'''提取负号和数字:param tem_str::return:'''i = 0res = ""while i < len(tem_str):if i + 1 < len(tem_str) and tem_str[i + 1] == '-' and tem_str[i] == '-':res += '-'i += 2elif tem_str[i] == '-':res += '-'i += 1elif tem_str[i].isdigit():res += tem_str[i]i += 1else:i += 1return int(res)

5.在最高温以及最低温那里使用apply,将最高温以及最低温都使用deal_tem计算每一列的每一个值

df['hightest_tem'] = df['hightest_tem'].apply(deal_tem)
df['lowest_tem'] = df['lowest_tem'].apply(deal_tem)
print(df)

6.得到对应的风向等级

在这里插入图片描述

def deal_wind(wind_str):'''得到风向和等级:param wind_str::return:'''try:feng_index = wind_str.find('风')win_direct = wind_str[:feng_index + 1]for idx in range(feng_index, len(wind_str)):if wind_str[idx].isdigit:level_index = idxbreakwind_level = wind_str[level_index:]return win_direct, wind_levelexcept Exception:return '', ''

7.应用到这两列

df['wind_direction'] = df['wind'].apply(lambda x: deal_wind(x)[0])
df['wind_level'] = df['wind'].apply(lambda x: deal_wind(x)[1])

8.更改对应的列名

df = df[['id', 'city', 'date', 'week', 'hightest_tem', 'lowest_tem', 'weather', 'wind_direction', 'wind_level']]
df.columns = ['ID', '城市', '日期', '星期', '最高温度', '最低温度', '天气', '风向', '风力等级']

9.保存对应的csv文件

df.to_csv('./data/result.csv', index=False)

这篇关于pandas处理天气数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088054

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1