按季度按季度分组

时间:2015-08-13 14:45:22

标签: pandas

我有一个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

1 个答案:

答案 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