2014-12-11 48 views
0

我有熊貓數據框與列'日期'和'傾斜(浮號)。我想平均每個星期二和它在列表或數據框中存儲的偏差值。我嘗試使用在這個問題Pandas, groupby and summing over specific months我給出的lambda,但它只對一些特定的一週有幫助,但我不能跨過一週,即從一個星期二到另一個星期。你可以給如何做同樣的事情嗎?如何總結熊貓中2個重複值之間的所有值?

+0

你可以給一些示例數據和期望的輸出嗎? – joris 2014-12-11 07:59:57

回答

0

下面是用隨機數據

一例
df = pd.DataFrame({'Date' : pd.date_range('20130101', periods=100), 
        'Skew': 10+pd.np.random.randn(100)}) 
min_date = df.Date.min() 
start = min_date.dayofweek 

if start < 1: 
    min_date = min_date - pd.np.timedelta64(6+start, 'D') 
elif start > 1: 
    min_date = min_date - pd.np.timedelta64(start-1, 'D') 

df.groupby((df.Date - min_date).astype('timedelta64[D]')//7).mean() 

輸入:

>>> df 
     Date  Skew 
0 2013-01-01 10.082080 
1 2013-01-02 10.907402 
2 2013-01-03 8.485768 
3 2013-01-04 9.221740 
4 2013-01-05 10.137910 
5 2013-01-06 9.084963 
6 2013-01-07 9.457736 
7 2013-01-08 10.092777 

輸出:

  Skew 
Date 
0  9.625371 
1  9.993275 
2  10.041077 
3  9.837709 
4  9.901311 
5  9.985390 
6  10.123757 
7  9.782892 
8  9.889291 
9  9.853204 
10 10.190098 
11 10.594125 
12 10.012265 
13  9.278008 
14 10.530251 

邏輯:從所述第一週的星期二和GROUPBY和各組查找相對周(即周的否)的意思。