2016-11-23 41 views
1

我學習來計算大數據集的移動平均值在Python中兩個以上的變量。在這裏我有日期,companyID和瀏覽量:計算的大數據集高效均線在Python 2.7

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。

+1

你在哪裏卡住你的Python代碼? –

+0

我首先第一個建議索引由公司,然後通過日期,然後在每家公司運行均線algorith – Adirio

+0

你是什麼意思_「而不按各公司如何計算呢?」 _ – Prajwal

回答

0

我也試過

 df = pd.read_csv('C:/Users/.../DataSet.csv', sep=',') 
    for i in CompanyID: 
     df['Avg2'] = pd.rolling_mean(df.PageViews, window=2) 
    print df 

它創建一個變量AVG2,但同樣,它不是基於CompanyID和結果是不正確的。

0

如果您是在30日均線的工作,不斷的前30天的總和。然後對於隨後的每一天,減去第一天並添加下一天。你會得到一個減法,一個加法和一個除法(相對於30個加法和一個除法)的每個移動平均值。

如果你想從數組中切出一個公司,Python有很多方法可以做到這一點。

相關問題