按日期对数据进行分组,并在python中查找平均值

时间:2016-03-11 17:22:25

标签: python python-2.7 datetime pandas dataframe

我有以下数据:

            Date  Value
0    1/3/2014    778
1    1/4/2014   4554
2    1/5/2014     23
3    1/6/2014    767
4    1/7/2014    878
5    1/8/2014    678
6    1/9/2014     64
7   1/10/2014    344
8   1/11/2014   6576
9   1/12/2014    879
10  1/13/2014   5688
11  1/14/2014    688
12  1/15/2014   8799
13  1/16/2014   7899
14  1/17/2014     76
15  1/18/2014    868
16  1/19/2014   7976
17  1/20/2014   8679
18  1/21/2014   6976
19  1/22/2014     68
20  1/23/2014    754
21  1/24/2014    878
22  1/25/2014   9796
23  1/26/2014     57
24  1/27/2014    868
25  1/28/2014    868
26  1/29/2014   8778
27  1/30/2014    887
28  1/31/2014    765
29   2/1/2014     57

我想将数据分成连续15天的一组,并找到值的平均值。我有一种天真的方式:

i = 15
j = 0
while i <= 30:
    X = data[j:i].mean()
    j = i
    i = i + 15
    print X

在pandas中使用group by是否有更好的方法?

1 个答案:

答案 0 :(得分:4)

试试这个:

df['Date'] = pd.to_datetime(df['Date'])
print(df.set_index('Date').groupby(pd.TimeGrouper('15D')).mean())

输出:

                  Value
Date
2014-01-03  2579.400000
2014-01-18  3218.333333