Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python 2.7中高效地计算大型数据集上的移动平均值_Python_Statistics_Moving Average_Data Science - Fatal编程技术网

在Python 2.7中高效地计算大型数据集上的移动平均值

在Python 2.7中高效地计算大型数据集上的移动平均值,python,statistics,moving-average,data-science,Python,Statistics,Moving Average,Data Science,我正在学习在Python中计算包含两个以上变量的大型数据集上的移动平均值。这里有日期、公司ID和浏览量: Date CompanyID PageViews 01/01/2016 023 420 02/01/2016 023 362 03/01/2016 023 214 … … …

我正在学习在Python中计算包含两个以上变量的大型数据集上的移动平均值。这里有日期、公司ID和浏览量:

    Date        CompanyID   PageViews
    01/01/2016     023        420       
    02/01/2016     023        362       
    03/01/2016     023        214       
    …               …          …        
    05/06/2016     311        54        
    06/06/2016     311        35        
    07/06/2016     311        69        
    …              …           …        
    04/03/2016     465        49        
    05/03/2016     465        17        
    …              …          … 
我想计算文件中每个公司和日期的2天移动平均数,并将结果存储为新变量Avg2。输出应如下所示:

    Date        CompanyID   PageViews      Avg2
    01/01/2016      023        420          NA
    02/01/2016      023        362         391  
    03/01/2016      023        214         288
    …                …          …           …   
    05/06/2016      311        54           NA
    06/06/2016      311        35          44.5
    07/06/2016      311        69          52
    …                …          …           …   
    04/03/2016      465        49           NA
    05/03/2016      465        17          33
    …                …          …           …   
如果不手动计算每家公司的成本,我将如何高效地做到这一点?(我有500家独特的公司)

我试着这样做:

    import pandas as pd
    df = pd.read_csv('C:/Users/.../DataSet.csv', sep=',')
    df['Avg2'] = pd.rolling_mean(df.PageViews, window=2)

但是它忽略了公司ID。

如果你是在30天移动平均线上工作,那么保持前30天的总和。然后,对于随后的每一天,减去第一天,再加上第二天。您将在一次减法、一次加法和一次除法中获得每个移动平均值(与30次加法和一次除法相对)


如果你想从数组中分割出一家公司,Python有很多方法可以做到这一点。

如果你是在30天移动平均线上工作,请保留前30天的总和。然后,对于随后的每一天,减去第一天,再加上第二天。您将在一次减法、一次加法和一次除法中获得每个移动平均值(与30次加法和一次除法相对)


如果你想从数组中分割出一家公司,Python有很多方法可以做到这一点。

你的Python代码是从哪里来的?我建议先按公司索引,然后按日期索引,然后在每家公司上运行移动平均算法。你说的“不按每家公司手动计算”是什么意思?@Prajwal,我的意思是,我可以过滤每家公司的数据,并分别计算每家公司的移动平均数,但如果有500家独特的公司,这需要很长时间才能做到。我以前没有使用过Python,所以我真的不知道如何在整个数据集上高效地使用它。@Chris_Rands,我添加了我所做的。但是,该代码忽略了companyID,我得到了不合适的结果。你在哪里被python代码卡住了?我建议先按公司索引,然后按日期索引,然后在每个公司上运行移动平均算法。你说的“不按每个公司手动计算”是什么意思?@Prajwal,我的意思是,我可以过滤每家公司的数据,并分别计算每家公司的移动平均数,但如果有500家独特的公司,这需要很长时间才能做到。我以前没有使用过Python,所以我真的不知道如何在整个数据集上高效地使用它。@Chris_Rands,我添加了我所做的。然而,该代码忽略了companyID,我得到了不适当的结果。