我有一个DataFrame,包含每月观察(var1,var2)的一个组(Area)
date var1 var2 Area
2008-03-01 2 22 OH
2008-02-01 3 33 OH
2008-01-01 4 44 OH
... etc
2008-03-01 111 1111 AK
2008-02-01 222 2222 AK
2008-01-01 333 3333 AK
我希望' downample'这些变量以季度数据为基础,取3个月均值。即对于' OH'的第一季度观察(var1)应为(1 + 3 + 4)/ 3。
我如何在熊猫中这样做?谢谢
编辑:这是我打算输出的内容:
dateQtr var1 var2 Area
2008-Q1 3 33 OH
2007-Q4 ... ... OH
... etc
2008-Q1 222 2222 AK
答案 0 :(得分:2)
如果您将索引设置为“日期”,那么您可以每季度resample
:
In [114]:
df.resample('q')
Out[114]:
var1 var2
date
2008-03-31 112.5 1127.5
所以你现有的df:
In [116]:
df.set_index('date').resample('q', how='mean')
Out[116]:
var1 var2
date
2008-03-31 112.5 1127.5
修改强>
感谢@JohnE指出这一点:
In [134]:
df.groupby('Area')[['var1','var2']].resample('q').reset_index()
Out[134]:
Area date var1 var2
0 AK 2008-03-31 222 2222
1 OH 2008-03-31 3 33