我有以下数据:
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是否有更好的方法?
答案 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