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

相关文章

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

Java实现Elasticsearch查询当前索引全部数据的完整代码

《Java实现Elasticsearch查询当前索引全部数据的完整代码》:本文主要介绍如何在Java中实现查询Elasticsearch索引中指定条件下的全部数据,通过设置滚动查询参数(scrol... 目录需求背景通常情况Java 实现查询 Elasticsearch 全部数据写在最后需求背景通常情况下