随笔 - 384  文章 - 0  评论 - 35  阅读 - 142万

pandas rolling()根据时间窗口计算滚动(时间序列有关)

这个函数的主要作用是根据时间(天,月,季度,年等)去看看数据的变化趋势,是下降了还是上升了,最后还要分析趋势的原因,结合业务逻辑去分析

可以根据某个时间周期,计算数据的变化,主要用于时间序列上面

DataFrame.rolling(window,min_periods = None,center = False,win_type = None,on = None,axis = 0,closed = None)

参数说明:

window:int, offset, or BaseIndexer subclass,就是时间周期参数(窗口),数值型,如果是这个BaseIndexer ,比较少见,暂时不管;

min_periods:int, default None,窗口中具有值的最小观察数(否则结果为NA)。对于由偏移量指定的窗口, min_periods将默认为1。否则,min_periods将默认为窗口的大小

center:bool, default False,将标签设置在窗口的中央

win_type:str, default None,提供一个窗口类型。如果为None,则所有点均加权。有关更多信息,请参见下面的注释

on:str, optional,对于DataFrame,是类似于日期时间的列或MultiIndex级别,在该列或MultiIndex级别上计算滚动窗口,而不是DataFrame的索引。由于不使用整数索引来计算滚动窗口,因此忽略提供的整数列并将其从结果中排除

axis:int or str, default 0,行或者列,默认是计算每列

closed:str, default None,使间隔在“右”,“左”,“两个”或“两个都不”端点上关闭。对于基于偏移的窗口,默认为“ right”。对于固定窗口,默认为“两个”。其余情况未针对固定窗口实施,就是开区间或者闭区间

官网:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rolling.html?highlight=rolling#pandas.DataFrame.rolling

注意:

1.上面说了这么多参数,最终的是window参数,其余的不必细看

2.这个函数一般配合聚合函数(sum,mean等)是使用

3.比如说df[col].rolling(3).sum(),就是计算连续三个值(当前这个+前面两个)的和

复制代码
import pandas as pd  
# 导入 pandas 
import numpy as np
index = pd.date_range('2019-01-01',periods=20)  
#创建日期序列
 
data = pd.DataFrame(np.arange(len(index)),index=index,columns=['test'])
#创建简单的pd.DataFrame
 
data
#打印data
data['sum'] = data.test.rolling(3).sum()
#移动3个值,进行求和
data['mean'] = data.test.rolling(3).mean()
#移动3个值,进行求平均数
data['mean1'] = data.test.rolling(3,min_periods=2).mean()
#移动3个值,最小计数为2,进行求平均数,查看跟上面有何不同
复制代码

我们看看最后的data

 

 

最后可将结果配合plot可视化出来

import matplotlib.pyplot as plt 
plt.plot(data)  #只是简单画图,不做复杂的处理

 

posted on   小小喽啰  阅读(5785)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示