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

news/2025/2/12 21:02:59/

文章目录

        • 时间序列(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)
ts2012-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)
ts2023-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 npdef 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.ppmy.cn/news/62086.html

相关文章

YOLOv5+单目跟踪测速(python)

YOLOv5+单目跟踪测速(python) 1. 相关配置2. 相机标定2.1:标定方法1(针对图片)2.2:标定方法2(针对视频)3. 目标跟踪4. 相机测速4.1 测速添加4.2 细节修改(可忽略)4.3 主代码5. 实验效果相关链接 1. YOLOv5+单目测距(python) 2. YOLOv7+单目测距(python)

2022云计算技能大赛容器云开发

容器开发 【任务 6】容器云运维开发:Kubernetes APIs 运维开发[10 分]【题目 1】Python 运维开发:基于 Kubernetes Restful API 实现 Deployment 创建[2 分]【题目 2】Python 运维开发:基于 Kubernetes Python SDK 实现 Job 创建[1 分]【题目…

计算时间复杂度详解

1,前置知识 我们在计算时间复杂度之前的前置知识是等差数列的通项公式和求和公式以及等比数 列的通项公式和求和公式 等差数列: 通项公式:ana1(n-1)d(d是公差) 求和公式:Snn(a1an)/2 等比数列&#xf…

低代码平台解读—如何不写代码创建表单和维护表单

工作表新建与修改——敲敲云 新建工作表的流程包含 新建工作表/编辑公祖表为工作表添加字段,例如“员工档案”表中有姓名、性别、年龄等字段为字段设置属性工作表布局工作表预览、保存、关闭 1、新建工作表/修改工作表 新建工作表 修改工作表 2、为工作表添加字段 …

基于docker的confluent-kafka搭建及python接口使用

基于docker的confluent-kafka搭建及python接口使用 1. 安装docker以及docker-compose1.1 安装docker1.2 安装docker-compose 2. 安装confluent-kafka3. python接口使用3.1 安装依赖包3.2 创建、查看topic3.3 python接口-broker3.4 python接口-consumer 参考链接 本文介绍基于do…

[2023-DAS x SU战队2023开局之战] crypto-sign1n

题目描述: from secret import r, t from Crypto.Util.number import *flag bxxx flag bytes_to_long(flag) e 0x10001def gen_keys():p getPrime(1024)q getPrime(1024)phi (p-1)*(q-1)d inverse(e,phi)n p*qprint(fn {n})WHATF (d ** 3 3) % phiprint…

一个让人类窒息的AI工具,或许未来人工智能真的能代替人类!

时隔几周,「神采PromeAI」又更新了 不仅页面做了小小的调整 又增加了「背景生成」功能 害怕各位小伙伴找不到使用位置 今天小编就给大家分享一个超全的使用教程 极速出图效率翻倍 让神采PromeAI在应用性设计方面更具优势 温馨提示:目前手机适配端无…

PAVC100R4222 PARKER轴向柱塞泵

PAVC100R4222 PARKER轴向柱塞泵特点: 1、壳体为高强度铸铁 2、两段设计便于维护 3、全密封的轴用轴承 4、内置增压器***高转速性能,可达3000 RPM( PAVC100为2600 RPM) 5、控制器为插装形式,易于现场更换 6、配流盘为可替换的青铜复合 10、过滤…