数据分析-Pandas如何轻松处理时间序列数据

Pandas-如何轻松处理时间序列数据

时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。此处选择巴黎、伦敦欧洲城市空气质量监测 N O 2 NO_2 NO2数据作为样例。

python数据分析-数据表读写到pandas

经典算法-遗传算法的python实现

经典算法-遗传算法的一个简单例子

大模型查询工具助手之股票免费查询接口

Falcon构建轻量级的REST API服务

决策引擎-利用Drools实现简单防火墙策略

Python技巧-终端屏幕打印光标和文字控制

监测的时间序列数据

比如,air quality no2 数据表中,主要是巴黎,伦敦等城市的每小时环境监测数据:

In [2]: air_quality.head()
Out[2]: city country                   datetime location parameter  value   unit
0  Paris      FR  2019-06-21 00:00:00+00:00  FR04014       no2   20.0  µg/1  Paris      FR  2019-06-20 23:00:00+00:00  FR04014       no2   21.8  µg/2  Paris      FR  2019-06-20 22:00:00+00:00  FR04014       no2   26.5  µg/3  Paris      FR  2019-06-20 21:00:00+00:00  FR04014       no2   24.9  µg/4  Paris      FR  2019-06-20 20:00:00+00:00  FR04014       no2   21.4  µg/m³In [3]: air_quality.city.unique()
Out[3]: array(['Paris', 'Antwerpen', 'London'], dtype=object)

转换为日期时间对象

默认读取的日期数据,实际上是字符串string 类型,无法进行日期时间的操作,可以转换为datetime数据对象类型,可以用to_datetime() 函数这样操作:

In [5]: air_quality["datetime"] = pd.to_datetime(air_quality["datetime"])In [6]: air_quality["datetime"]
Out[6]: 
0      2019-06-21 00:00:00+00:00
1      2019-06-20 23:00:00+00:00
2      2019-06-20 22:00:00+00:00
3      2019-06-20 21:00:00+00:00
4      2019-06-20 20:00:00+00:00...           
2063   2019-05-07 06:00:00+00:00
2064   2019-05-07 04:00:00+00:00
2065   2019-05-07 03:00:00+00:00
2066   2019-05-07 02:00:00+00:00
2067   2019-05-07 01:00:00+00:00
Name: datetime, Length: 2068, dtype: datetime64[ns, UTC]

当然,也可以在pandas.read_csv(), 和 pandas.read_json()函数中,直接就解析转换为datetime类型,parse_dates 参数

pd.read_csv("../data/air_quality_no2_long.csv", parse_dates=["datetime"])

时间操作的典型问题

如何找到序列中的时间开始和时间结束?

In [7]: air_quality["datetime"].min(), air_quality["datetime"].max()
Out[7]: 
(Timestamp('2019-05-07 01:00:00+0000', tz='UTC'),Timestamp('2019-06-21 00:00:00+0000', tz='UTC'))

通过min()函数,找到时间最小值,也就是开始时间;max()函数,找到时间序列最大值,也就是结束时间。

如何比较两个时间点?如何计算时间跨度,或者持续时间?

In [8]: air_quality["datetime"].max() - air_quality["datetime"].min()
Out[8]: Timedelta('44 days 23:00:00')

pandas.Timestamp 可以直接计算差值,结果为pandas.Timedelta 类型,类似于python库的时间跨度,datetime.timedelta

如何仅关注某个时间单位?

比如年,月,日,比如增加一列,表示月份?

In [11]: air_quality["month"] = air_quality["datetime"].dt.monthIn [12]: air_quality.head()
Out[12]: city country                  datetime  ... value   unit  month
0  Paris      FR 2019-06-21 00:00:00+00:00  ...  20.0  µg/6
1  Paris      FR 2019-06-20 23:00:00+00:00  ...  21.8  µg/6
2  Paris      FR 2019-06-20 22:00:00+00:00  ...  26.5  µg/6
3  Paris      FR 2019-06-20 21:00:00+00:00  ...  24.9  µg/6
4  Paris      FR 2019-06-20 20:00:00+00:00  ...  21.4  µg/6[5 rows x 8 columns]

使用timestamp的 dt.month属性,提取月份数值。类似的,也可以提取年,日,季节等等时间属性。

如何计算每周,每个城市的No2浓度平均值?

In [13]: air_quality.groupby(....:     [air_quality["datetime"].dt.weekday, "location"])["value"].mean()....: 
Out[13]: 
datetime  location          
0         BETR801               27.875000FR04014               24.856250London Westminster    23.969697
1         BETR801               22.214286FR04014               30.999359...    
5         FR04014               25.266154London Westminster    24.977612
6         BETR801               21.896552FR04014               23.274306London Westminster    24.859155
Name: value, Length: 21, dtype: float64

使用groupby函数,按照周为时间单位,按城市分组然后合并归集,计算组内均值。

如何把时间Datetime作为索引?

In [18]: no_2 = air_quality.pivot(index="datetime", columns="location", values="value")In [19]: no_2.head()
Out[19]: 
location                   BETR801  FR04014  London Westminster
datetime                                                       
2019-05-07 01:00:00+00:00     50.5     25.0                23.0
2019-05-07 02:00:00+00:00     45.0     27.7                19.0
2019-05-07 03:00:00+00:00      NaN     50.4                19.0
2019-05-07 04:00:00+00:00      NaN     61.9                16.0
2019-05-07 05:00:00+00:00      NaN     72.4                 NaN

pivot()函数,指定索引 index,列属性columns和数值values,生成二维表。

另外,也可以通过set_index函数。

如何更新频度的重采样?

比如,把当前每小时的采样频度,更新为每个月,取最大值作为采样值。

In [22]: monthly_max = no_2.resample("M").max()In [23]: monthly_max
Out[23]: 
location                   BETR801  FR04014  London Westminster
datetime                                                       
2019-05-31 00:00:00+00:00     74.5     97.0                97.0
2019-06-30 00:00:00+00:00     52.5     84.7                52.0

resample()函数,类似于groupby分组聚合函数。

以上代码只是一个简单示例,示例代码中的表达式可以根据实际问题进行修改。

觉得有用 收藏 收藏 收藏

点个赞 点个赞 点个赞

End


GPT专栏文章:

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

大模型查询工具助手之股票免费查询接口

GPT实战系列-简单聊聊LangChain

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)

GPT实战系列-ChatGLM2模型的微调训练参数解读

GPT实战系列-如何用自己数据微调ChatGLM2模型训练

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-Baichuan2等大模型的计算精度与量化

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

GPT实战系列-探究GPT等大模型的文本生成-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

omics简介

omics简介 公众号pythonic生物人写的系列文章介绍了组学的相关内容,本文仅做了一个简单的知识框架,供后面遇到对应问题,快速查阅。欢迎大家去关注原作者。 这篇文章也非常值得阅读:肿瘤NGS行业新人如何构建自己的知识体系-思考问题…

YOLOV8

YOLOv8 是 ultralytics (超溶体)公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,在还没有开源时就收到了用户的广泛关注。 总结: 1. 是YOLOV5的继承者 2. …

工智能基础知识总结--词嵌入之Word2Vec

词嵌入要解决什么问题 在自然语言系统中,词被看作最为基本的单元,如何将词进行向量化表示是一个很基本的问题,词嵌入(word embedding)就是把词映射为低维实数域向量的技术。 下面先介绍几种词的离散表示技术,然后总结其缺点,最后介绍词的分布式表示及其代表技术(word2v…

msvcr120.dll是什么?msvcr120.dll丢失要怎么去修复?

随着计算机技术的不断发展,我们在使用软件或游戏时经常会遇到各种错误提示,其中找不到msvcr120.dll就是一种常见的错误。那么,msvcr120.dll是什么?它的作用是什么?如何修复msvcr120.dll丢失的问题?本文将为…

1.4号io网络

1.多进程 引入目的:让多个任务实现并发执行 并发执行:同一时间只有一个进程执行,通过时间轮询调度多个进程,由于时间每个进程所用时间极短,所以宏观表现为多个进程同时进行。 并行执行:多个任务器执行多…

【福利】百度内容审核平台实战

文章目录 前言功能概述产品价格快速入门(账号登录及资源领取、在线验证、编写示例程序)实战演示1、首先创建一个应用2、引入百度的SDK3、测试用例百度内容审核-文本 200QPS百度内容审核-图像 50QPS 写在最后 前言 百度内容审核平台主要针对图像、文本、…

python中notebook的 %magic

IPythons magic functions注意:既然是IPython的内置magic函数,那么在Pycharm中是不会支持的。The magic function system provides a series of functions which allow you to control the behavior of IPython itself, plus a lot of system-type featu…

Python实现深度迁移学习-CIFAR100-ResNet50

# Pandas and numpy for data structures and util fucntions import scipy as sp import numpy as np import pandas as pd from numpy.random import rand pd.options.display.max_colwidth = 608# Scikit Imports from sklearn import preprocessing from sklearn

python:sys模块

Python sys 模块学习笔记 sys 模块是 Python 标准库中的一个核心模块,提供了与 Python 解释器及其环境相关的功能。 1. sys.argv sys.argv 是一个包含命令行参数的列表,其中第一个元素是脚本名称,之后的元素是在运行脚本时传递的参数。 # e…

C语言可变参数输入

本博文源于笔者正在学习的可变参数输入&#xff0c;可变参数是c语言函数中的一部分&#xff0c;下面本文就以一个很小的demo演示可变参数的编写 问题来源 想要用可变参数进行多个整数相加 方法源码 #include<stdio.h> #include<stdlib.h> #include<stdarg.h…

接口测试基础(超详细)

一、HTTP 1、http请求头和响应头包含那些内容&#xff1f; 请求头信息 请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。 2、常用的请求报头如下&#xff1a; Accept&#xff1a;浏览器可接受的MIME类型。 l MIME用于设定某种扩展名的文件用哪种应用程…

Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive

说明 ZookeeperHadoopSparkFlinkKafkaHbaseHive 完全分布式高可用集群搭建 下载 https://archive.apache.org/dist/ 我最终选择 Zookeeper3.7.1 Hadoop3.3.5 Spark-3.2.4 Flink-1.16.1 Kafka2.12-3.4.0 HBase2.4.17 Hive3.1.3 JDK1.8.0_391 一、服务器 IP规划 IPhos…

tiktok_浅谈hook ios之发包x-ss-stub

frida-trace ios手机一部&#xff0c;需要越狱的电脑一台idacrackerXI 目标app&#xff1a; ipa 包&#xff0c;点击前往 密码&#xff1a;8urs 协议分析起始从抓包开始&#xff0c;个人习惯 一般安卓逆向可以直接搜关键词&#xff0c;但是ios 都在 Mach-O binary (reverse…

基于ssm学生社团管理系统+vue论文

摘 要 如今的时代&#xff0c;是有史以来最好的时代&#xff0c;随着计算机的发展到现在的移动终端的发展&#xff0c;国内目前信息技术已经在世界上遥遥领先&#xff0c;让人们感觉到处于信息大爆炸的社会。信息时代的信息处理肯定不能用之前的手工处理这样的解决方法&#x…

编程江湖:Python探秘之旅-----控制流程的艺术(二)

公司新承接了一个项目&#xff0c;需要处理复杂的数据决策。团队聚集在会议室&#xff0c;讨论如何用 Python 实现这一功能。 龙&#xff1a;&#xff08;看着屏幕上的项目需求&#xff09;这个项目需要我们做很多判断。好在 Python 的控制流程可以轻松搞定。 码娜&#xff1…

DAPP和APP的区别在哪?

随着科技的飞速发展&#xff0c;我们每天都在与各种应用程序打交道。然而&#xff0c;你是否真正了解DAPP和APP之间的区别呢&#xff1f;本文将为你揭示这两者的核心差异&#xff0c;让你在自媒体平台上脱颖而出。 一、定义与起源 APP&#xff0c;即应用程序&#xff0c;通常指…

一文读懂JVS逻辑引擎如何调用规则引擎:含详细步骤与场景示例

在当今的数字化时代&#xff0c;业务逻辑和规则的复杂性不断增加&#xff0c;这使得逻辑引擎和规则引擎在处理业务需求时显得尤为重要。逻辑引擎和规则引擎通过定义、解析和管理业务逻辑和规则&#xff0c;能够帮助企业提高工作效率、降低运营成本&#xff0c;并增强决策的科学…

数据科学低代码工具思考2—现状分析

数据科学工具伴随着计算机技术的发展也在持续的演进。数据库、大数据以及人工智能等时代标志性技术的出现&#xff0c;对数据科学工具的能力也有了更高的要求。一般而言&#xff0c;工具发展的趋势都是首先会出现一个能够支持数据科学计算的开发框架&#xff0c;方便用户能够更…

RHCE9学习指南 第20章 计划任务

有时需要在某个指定的时间执行一个操作&#xff0c;此时就要使用计划任务了。计划任务有两种&#xff1a;一个是at计划任务&#xff0c;另一个是crontab计划任务。 下面我们分别来看这两种计划任务的使用。 20.1 at at计划任务是一次性的&#xff0c;到了指定的时间点时就开始…

44 C++ 进程线程的基本概念-并发,进程,线程,可执行程序的基本概念

一 并发&#xff0c;进程&#xff0c;线程的基本概念和综述 1 并发 两个或者更多的任务&#xff08;独立的活动&#xff09;同时发生&#xff0c;以提高性能 一个程序同时执行多个独立的任务。 在单核CPU的计算机上&#xff0c;某一个时刻只能执行一个任务&#xff0c;那么…