【发布时间】:2016-11-23 13:09:40
【问题描述】:
我正在学习在 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)
但它忽略了 CompanyID。
【问题讨论】:
-
你的 python 代码在哪里卡住了?
-
我建议先按公司索引,然后再按日期索引,然后对每个公司运行移动平均算法
-
你说的是什么意思?“不用手动计算每个公司?”
-
@Prajwal,我的意思是我可以过滤每家公司的数据并分别计算每家公司的移动平均值,但是拥有 500 家独特的公司需要很长时间才能做到这一点。我以前没有使用过 Python,所以我真的不知道如何在整个数据集上有效地做到这一点。
-
@Chris_Rands,我添加了我所做的。但是,该代码忽略了 CompanyID,我得到了不恰当的结果。
标签: python statistics moving-average data-science