如何将大熊猫中2个重复值之间的所有值相加?

时间:2014-12-11 06:11:24

标签: python pandas

我的pandas数据框有Columns'Date'和'Skew(float no。)'。我想平均每周二之间的偏差值,并将其存储在列表或数据框中。我尝试使用这个问题Pandas, groupby and summing over specific months中给出的lambda,但它只对某一周的某些人有所帮助,但是我不能跨越一周,即从一个星期二到另一个星期。你能给出如何做同样的事情吗?

1 个答案:

答案 0 :(得分: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和每个组(即一周没有&#39; s)的意思。