pandas使用教程:pandas resample函数处理时间序列数据

news2025/2/24 0:14:16

文章目录

        • 时间序列(TimeSeries)
          • 执行多个聚合
        • 上采样和填充值
          • 通过apply传递自定义功能
        • DataFrame对象

时间序列(TimeSeries)

#创建时间序列数据
rng = pd.date_range('1/1/2012', periods=300, freq='S')

ts = pd.Series(np.random.randint(0, 500, len(rng)), index=rng)
ts

2012-01-01 00:00:00     44
2012-01-01 00:00:01     54
2012-01-01 00:00:02    132
2012-01-01 00:00:03     70
2012-01-01 00:00:04    476
                      ... 
2012-01-01 00:04:55    178
2012-01-01 00:04:56     83
2012-01-01 00:04:57    184
2012-01-01 00:04:58    223
2012-01-01 00:04:59    179
Freq: S, Length: 300, dtype: int32

时间频率转换的参数如下
在这里插入图片描述
resample重采样

ts.resample('1T').sum()  #按一分钟重采样之后求和
ts.resample('1T').mean() #按一分钟重采样之后求平均
ts.resample('1T').median() #按一分钟重采样之后求中位数

2023-01-01 00:00:00    275.5
2023-01-01 00:01:00    245.0
2023-01-01 00:02:00    233.5
2023-01-01 00:03:00    284.0
2023-01-01 00:04:00    245.5
Freq: T, dtype: float64
执行多个聚合

使用agg函数执行多个聚合。

ts.resample('1T').agg(['min','max', 'sum'])

	min	max	sum
2023-01-01 00:00:00	0	492	15536
2023-01-01 00:01:00	3	489	15840
2023-01-01 00:02:00	3	466	14282
2023-01-01 00:03:00	2	498	15652
2023-01-01 00:04:00	6	489	15119

上采样和填充值

上采样是下采样的相反操作。它将时间序列数据重新采样到一个更小的时间框架。例如,从小时到分钟,从年到天。结果将增加行数,并且附加的行值默认为NaN。内置的方法ffill()和bfill()通常用于执行前向填充或后向填充来替代NaN。

rng = pd.date_range('1/1/2023', periods=200, freq='H')

ts = pd.Series(np.random.randint(0, 200, len(rng)), index=rng)
ts

2023-01-01 00:00:00     16
2023-01-01 01:00:00     19
2023-01-01 02:00:00    170
2023-01-01 03:00:00     66
2023-01-01 04:00:00     33
                      ... 
2023-01-09 03:00:00     31
2023-01-09 04:00:00     61
2023-01-09 05:00:00     28
2023-01-09 06:00:00     67
2023-01-09 07:00:00    137
Freq: H, Length: 200, dtype: int32
#下采样到分钟
ts.resample('30T').asfreq()

2023-01-01 00:00:00     16.0
2023-01-01 00:30:00      NaN
2023-01-01 01:00:00     19.0
2023-01-01 01:30:00      NaN
2023-01-01 02:00:00    170.0
                       ...  
2023-01-09 05:00:00     28.0
2023-01-09 05:30:00      NaN
2023-01-09 06:00:00     67.0
2023-01-09 06:30:00      NaN
2023-01-09 07:00:00    137.0
Freq: 30T, Length: 399, dtype: float64
通过apply传递自定义功能
import numpy as np

def res(series):
    return np.prod(series)

ts.resample('30T').apply(res)

2023-01-01 00:00:00     16
2023-01-01 00:30:00      1
2023-01-01 01:00:00     19
2023-01-01 01:30:00      1
2023-01-01 02:00:00    170
                      ... 
2023-01-09 05:00:00     28
2023-01-09 05:30:00      1
2023-01-09 06:00:00     67
2023-01-09 06:30:00      1
2023-01-09 07:00:00    137
Freq: 30T, Length: 399, dtype: int32

DataFrame对象

对于DataFrame对象,关键字on可用于指定列而不是重新取样的索引

df = pd.DataFrame(data=9*[range(4)], columns=['a', 'b', 'c', 'd'])
df['time'] = pd.date_range('1/1/2000', periods=9, freq='T')
df.resample('3T', on='time').sum()

Out[81]: 
                     a  b  c  d
time                           
2000-01-01 00:00:00  0  3  6  9
2000-01-01 00:03:00  0  3  6  9
2000-01-01 00:06:00  0  3  6  9

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

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

相关文章

十二、MyBatis分页插件

文章目录 十二、分页插件12.1 分页插件使用步骤12.2 分页插件的使用12.3 测试案例 本人其他相关文章链接 十二、分页插件 12.1 分页插件使用步骤 1. 添加依赖 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</art…

Java基本数据类型以及包装类型的常量池技术

Java 中的基本数据类型 Java 中有 8 种基本数据类型&#xff0c;分别为&#xff1a; 6 种数字类型&#xff1a; 4 种整数型&#xff1a;byte、short、int、long2 种浮点型&#xff1a;float、double 1 种字符类型&#xff1a;char1 种布尔型&#xff1a;boolean。 这 8 种基本…

Socks5 代理协议:网络安全中的利器

随着网络的普及&#xff0c;网络安全问题已成为各行各业所面临的共同难题。为了保护自己的网络安全&#xff0c;不少人选择使用代理IP&#xff0c;其中 Socks5 代理协议因其安全性、灵活性等优势备受青睐。本文将介绍 Socks5 代理协议及其在网络安全中的作用。 一、什么是 Soc…

安卓手机搭建智能语音客服/通话播音/聊天播音乐技术实现

声明&#xff0c;此项技术需要root支持&#xff0c;如果因为刷机导致手机变砖或其他不可预料的后果请自行解决。 场景 我有一个朋友他是做业务的&#xff0c;主要还是做电销&#xff0c;其实电销相对于以前纪念没那么好做了&#xff08;我自己觉得主要是互联网冲击&#xff0c…

[EIS 2019]EzPOP

[EIS 2019]EzPOP 考点&#xff1a; base64加密&#xff0c;解密的时候按4个的倍数 然后数组里面含有 php代码也可以执行 然后学到了解题思路&#xff0c;逆推然后找各个变量的初始值 <?php error_reporting(0);class A {protected $store;protected $key;protected $expire…

JAVA原生语言开发多学校Saas模式校园管理系统

开发语言&#xff1a;JAVA数据库&#xff1a;MySQL后端框架&#xff1a;Spring boot前端框架&#xff1a;VUE2电子班牌&#xff1a; Android 7.1小程序&#xff1a;原生开发多学校Saas 模式 详细技术栈 前后端分离 1、使用springboot框架Javavue2 2、数据库MySQL5.7 3、移动端…

1.数据库的管理(实验报告)

目录 一﹑实验目的 二﹑实验平台 三﹑实验内容和步骤 四﹑命令(代码)清单 五﹑命令(代码)运行结果 一﹑实验目的 了解SQL Server数据库的逻辑结构和物理结构的特点&#xff1b;掌握使用SQL Server管理平台对数据库进行管理的方法&#xff1b;掌握使用Transact-SQL语句对数…

云原生时代崛起的编程语言Go并发编程实战

文章目录 概述基础理论并发原语协程-Goroutine通道-Channel多路复用-Select通道使用超时-Timeout非阻塞通道操作关闭通道通道迭代 定时器-TimerAndTicker工作池-Worker Pools等待组-WaitGroup原子操作-Atomic互斥锁-Mutex读写互斥锁-RWMutex有状态协程单执行-Once条件-Cond上下…

交通拥堵、安全隐患、能源浪费…数字孪生技术助力城市管理现代化

随着智能城市的不断发展&#xff0c;数字孪生技术也开始在智慧城市的建设中得到了广泛应用。数字孪生作为一种数字化的复制技术&#xff0c;它可以模拟真实世界中的实体和过程。 在城市规划方面&#xff0c;数字孪生可以帮助城市规划师更加直观地了解城市的整体规划和发展趋势&…

Python爬虫常用框架

大家都知道python是一门多岗位编程语言&#xff0c;学习python之后可以从事的岗位有很多&#xff0c;python爬虫便在其中&#xff0c;不过很多人对python不是很了解&#xff0c;所以也不知道python爬虫是什么&#xff0c;接下来小编为大家介绍一下。 Python是一门非常适合开发…

Eureka注册中心及Ribbon的源码跟踪

搭建的思路: 一个Eureka注册中心, 两个微服务, 一个为order-service(订单服务), 一个为user-service(用户服务), 在order-service中需要使用user-service中的方法. 步骤: 搭建 Eureka-server服务, 用于服务的消费者和提供者注册服务向注册中心注册user-service服务向注册中心注…

即时通讯开发商如何选择?

随着即时通讯开发技术进步&#xff0c;人与人之间沟通互动更加便利。同时在企业的营销过程中&#xff0c;即时聊天手机APP为企业与消费者提供了即时互动平台&#xff0c;有效增强营销效果。 企业内部沟通、电商客服沟通都是需要用到即时通讯功能。而现在开发即时通讯功能并不是…

Yolov1 源码讲解 detect.py

讲完了训练部分 接下来是检测部分 惯例看看结构 VOC_CLASS_BGR是不同类别应该用什么颜色画框容易区分&#xff0c;比如A用红色&#xff0c;B用绿色&#xff0c;不容易在途中颜色混在一起 画框框 def visualize_boxes(image_bgr, boxes, class_names, probs, name_bgr_dictNon…

这一篇LiveData掉不掉价(使用+粘性事件解决)

1. 简介 LiveData 是一种可观察的数据存储器类。与常规的可观察类不同&#xff0c;LiveData 具有生命周期感知能力&#xff0c;意指它遵循其他应用组件&#xff08;如 activity、fragment 或 service&#xff09;的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周…

要创建富文本内容?Kendo UI Angular组件有专门的编辑器应对!

您的Angular应用程序可能需要允许用户添加带有格式化选项的文本、图像、表格、外观样式和/或链接&#xff0c;使用Kendo UI for Angular的编辑器&#xff0c;可以轻松搞定这些&#xff01; Kendo UI for Angular是专业级的Angular UI组件库&#xff0c;不仅是将其他供应商提供…

Final关键字的使用技巧及其性能优势

文章目录 概念Final关键字的基本用法Final关键字的使用技巧Final关键字的性能优势总结 概念 Java中的final关键字用于修饰变量、方法和类&#xff0c;可以让它们在定义后不可更改&#xff0c;从而提高程序的稳定性和可靠性。此外&#xff0c;final关键字还有一些使用技巧和性能…

YAPI--撰写接口文档的平台

1 YAPI 1.1 YAPI介绍 在前后台分离开发中&#xff0c;我们前后台开发人员都需要遵循接口文档&#xff0c;所以接下来我们介绍一款撰写接口文档的平台。 YApi 是高效、易用、功能强大的 api 管理平台&#xff0c;旨在为开发、产品、测试人员提供更优雅的接口管理服务。 其官…

opencv实践之图像拼接

目录 1.简介2. 步骤2.1 特征检测与提取2.2 关键点检测2.3 关键点和描述符2.4 特征匹配2.5 比率测试2.6 估计单应性 3. 完整代码 1.简介 图像拼接是计算机视觉中最成功的应用之一。如今&#xff0c;很难找到不包含此功能的手机或图像处理API。在本 文中&#xff0c;我们将讨论如…

Ubuntu在线安装及卸载MySQL

目录 1 安装 1.1 更新包管理工具apt-get 1.2 安装MySQL服务器端 1.3 安装MySQL客户端 1.4 初始化配置 1.5 检查MySQL服务状态 2 卸载 2.1 查看MySQL依赖项 2.2 卸载mysql-common 2.3 再卸载 mysql-server-8.0 2.4 再用dpkg --list|grep mysql查看&#xff0c;还剩什么…

MySQL -- 基础

目录 1. 数据库的操作 1.1 显示当前数据库 1.2 创建数据库 1.3 使用数据库 1.4 删除数据库 2. 常用的数据类型 2.1 数值类型 2.2 字符串类型 2.3 日期类型 3. 表的操作 3.1 查看表的结构 3.2 创建表 3.4 删除表 1. 数据库的操作 1.1 显示当前数据库 show databases; 1.2…