怎么求一个数组的移动平均数

  统计/机器学习 数据预处理 Python    浏览次数:7807        分享
3

在Python中,怎么求一个list或者pandas.Series一列数据的移动平均数?有现成可以直接调用的函数吗?

 

雕牌   2017-02-25 13:47



   1个回答 
11

pandas模块里提供现成的求移动平均值的函数。如果是个list,需要先转换为pandas.Series。如果已经是pandas.Sereis类型的数据了,可以直接调用。

import pandas as pd
s = [1,2,3,5,6,10,12,14,12,30]
moving_mean = pd.Series(s).rolling(window=3).mean()

如果s已经是个pandas.Series类型的了,就直接调用

moving_mean = pd.Series(s).rolling(window=3).mean()

上面的window=3的意思是每次取三个数的平均,移动窗口的长度。


SofaSofa数据科学社区DS面试题库 DS面经

高代兄   2017-02-27 03:49

对,这个是最新的,因为之后版本的pandas不再提倡使用rolling_mean了,都改成rolling(window=k).mean() - batmanX   2017-02-27 11:27
many thanks! - 雕牌   2017-02-28 11:52


  相关讨论

让DataFrame中的行按照某一列元素的绝对值从大到小排列

怎么把dataframe的一列转成整数类型

一个数据预处理的问题

str.replace为什么会将数字替换成NaN

python中怎么把千位分隔符以及货币符号去掉转成数值形式?

把分组频数统计的结果添加到原来dataframe中

怎麼將dataframe 欄位 對應到原有的csv檔 而寫入

机器学习中的过采样和欠采样是什么意思?

怎么对特征做标准化使得数值都是正数?

分类特征的目标编码是什么意思?

  随便看看

逻辑回归模型中变量的系数怎么理解?

推荐系统算法里的cold start是什么意思?

sota model是什么意思?

numpy里的无穷大np.inf到底是多大呢?

怎么对pandas dataframe的列求众数