首页 > 其他分享 >计算滚动平均

计算滚动平均

时间:2023-12-28 15:59:52浏览次数:23  
标签:10 滚动 df NaN sales leads 计算 rolling 平均

计算滚动平均

滚动平均是指时间序列中之前特定数量数据的平均值。
pandas中有相应的库函数来实现计算任务。
具体语法:df['column_name'].rolling(rolling_window).mean()
实例:

import numpy as np
import pandas as pd

#make this example reproducible
np.random.seed(0)

#create dataset
period = np.arange(1, 101, 1) # 1-100的时间区间
leads = np.random.uniform(1, 20, 100)
sales = 60 + 2*period + np.random.normal(loc=0, scale=.5*period, size=100)
df = pd.DataFrame({'period': period, 'leads': leads, 'sales': sales})

#view first 10 rows
df.head(10)

结果:

 period	leads	sales
0	1	11.427457	61.417425
1	2	14.588598	64.900826
2	3	12.452504	66.698494
3	4	11.352780	64.927513
4	5	9.049441	73.720630
5	6	13.271988	77.687668
6	7	9.314157	78.125728
7	8	17.943687	75.280301
8	9	19.309592	73.181613
9	10	8.285389	85.272259

使用pandas语法来完成前5区间的滚动平均计算。

#find rolling mean of previous 5 sales periods
df['rolling_sales_5'] = df['sales'].rolling(5).mean()

#view first 10 rows
df.head(10)

结果显示:

 period	leads	sales	rolling_sales_5
0	1	11.427457	61.417425	NaN
1	2	14.588598	64.900826	NaN
2	3	12.452504	66.698494	NaN
3	4	11.352780	64.927513	NaN
4	5	9.049441	73.720630	66.332978
5	6	13.271988	77.687668	69.587026
6	7	9.314157	78.125728	72.232007
7	8	17.943687	75.280301	73.948368
8	9	19.309592	73.181613	75.599188
9	10	8.285389	85.272259	77.909514

使用相似的语法可以计算其他多列的滚动平均:

#find rolling mean of previous 5 leads periods 
df['rolling_leads_5'] = df['leads'].rolling(5).mean() 

#find rolling mean of previous 5 leads periods
df['rolling_sales_5'] = df['sales'].rolling(5).mean()

#view first 10 rows
df.head(10)

结果显示:

 period	leads	sales	rolling_sales_5	rolling_leads_5
0	1	11.427457	61.417425	NaN	NaN
1	2	14.588598	64.900826	NaN	NaN
2	3	12.452504	66.698494	NaN	NaN
3	4	11.352780	64.927513	NaN	NaN
4	5	9.049441	73.720630	66.332978	11.774156
5	6	13.271988	77.687668	69.587026	12.143062
6	7	9.314157	78.125728	72.232007	11.088174
7	8	17.943687	75.280301	73.948368	12.186411
8	9	19.309592	73.181613	75.599188	13.777773
9	10	8.285389	85.272259	77.909514	13.624963

将不同滚动窗口的滚动平均效果进行对比:

import matplotlib.pyplot as plt
plt.plot(df['rolling_sales_5'], label='Rolling Mean Window=5')
plt.plot(df['rolling_sales_10'], label='Rolling Mean Window=10')
plt.plot(df['sales'], label='Raw Data')
plt.legend()
plt.ylabel('Sales')
plt.xlabel('Period')
plt.show()

结果显示:

结论:
滚动平均是一种数据光滑化的操作,窗口越大,越光滑,越接近趋势线。

标签:10,滚动,df,NaN,sales,leads,计算,rolling,平均
From: https://www.cnblogs.com/bonne-chance/p/17932863.html

相关文章

  • 安全可信|这朵政务云通过中央网信办云计算服务安全评估增强级认证!
    近日,新疆电信省级政务云平台正式通过中央网信办云计算服务安全评估增强级认证,这标志着天翼云政务云的安全可控水平已经获得权威认可,能够满足政务应用上云的高安全要求。在2023年国家网络安全宣传周云计算服务安全分论坛上,天翼云携手业内头部云商,签署《云计算服务安全自律公约》,主动......
  • 魔搭+ 函数计算: 一键部署,缩短大模型选型到生产的距离
    引言面对魔搭ModelScope社区提供的海量模型,用户希望快速进行选型并生产使用起来,但在此之前,却一定会面临算力管理难、模型部署难等一系列问题,那么能否实现快速把选定的模型部署在云端功能强大的GPU上,由云端负责服务,扩展,保护和监控模型服务,同时免于运维和管理云上算力等基础设施......
  • James F. Kurose, Keith W. Ross著,陈鸣译,《计算机网络-自顶向下方法》(第6版),机械工业出
    JamesF.Kurose,KeithW.Ross著,陈鸣译,《计算机网络-自顶向下方法》(第6版),机械工业出版社,2014 n计算机网络课程学习什么?nn计算机网络是计算机专业和信息安全专业的专业基础课程,课程主要介绍计算机网络的基本原理和技术,通过对网络协议模型多层次功能结构的展开与探讨,详细介绍......
  • 测试开发 | 人工智能与分布式计算:驱动智能时代的强力结合
    随着人工智能的迅猛发展,处理庞大数据集的需求不断增长。在这一背景下,分布式计算成为推动人工智能创新的关键技术之一。本文将探讨人工智能与分布式计算的密切关系,以及它们如何协同工作,推动智能时代的到来。1.引言人工智能的广泛应用使得数据处理的规模不断扩大,传统的单机计算已经......
  • 实现div元素滚动条自动滚动到最底部(或最顶部)
    css属性 Overflow可以实现溢出显示滚动条overflow:scroll;或overflow-y:autooverflow-x:auto 实现div元素滚动条默认滚动到最底端使用场景:聊天信息框需要了解几个属性和方法:scrollHeight:元素高度(包含滚动条隐藏部分)clientHeight:元素可视高度(不包含滚动......
  • 计算机图形:纹理与表面细节
    目录纹理技术为什么需要纹理?如何添加纹理?纹理映射线性纹理图案表面纹理图案体纹理图案纹理缩减图案凹凸映射构造凹凸图顶点空间(待完成)帧映射OpenGL函数线纹理函数表面纹理函数体纹理函数纹理图案的颜色选项纹理映射选项纹理环绕复制帧缓存中的纹理图案纹理坐标数组纹理图案命名纹......
  • Unity3D Shader Compute Shader基于GPU的并发计算详解
    在游戏开发中,计算密集型的任务通常需要耗费大量的CPU资源,这可能导致游戏性能下降,影响玩家的游戏体验。为了解决这个问题,Unity3D引入了ShaderComputeShader技术,它使用GPU进行并发计算,将一些计算密集型任务从CPU转移到GPU上执行,以提高游戏的性能和效率。本文将详细介绍Unity3DSha......
  • 计算分子生物学
     计算分子生物学:算法逼近/(美)P.A.帕夫纳著/王翼飞等译.-北京:化学工业出版社,2004    235页:图;24cm            ISBN7-5025-5649-4:CNY48.00    本书覆盖了算法和组合问题的主要领域,并揭示了这些问题是如何同分子生物学和生物技术相联系的。......
  • 【flink番外篇】5、flink的window(介绍、分类、函数及Tumbling、Sliding、session窗口
    文章目录Flink系列文章一、maven依赖二、示例:基于数量的滚动窗口与滑动窗口1、滚动窗口实现地铁进站口人数1)、实现2)、验证步骤2、滑动窗口实现地铁进站口人数1)、实现2)、验证步骤三、示例:会话窗口1、实现2、验证步骤本文介绍了Flinkwindow基于数量的滚动、滑动窗口和会话窗口示......
  • 【flink番外篇】5、flink的window(介绍、分类、函数及Tumbling、Sliding、session窗口
    文章目录Flink系列文章一、maven依赖二、示例:基于时间的滚动和滑动窗口1、滚动窗口实现统计地铁进站口人数1)、一般实现(Tuple2数据结构)及验证2)、面向对象实现(pojo数据结构)及验证3)、面向对象lambda实现(pojo的数据结构lambda)及验证4)、一般lambda实现(Tuple2数据结构)及验证2、滑动窗口......