Pandas数据帧的组内计算

时间:2014-10-19 11:39:08

标签: python pandas grouping dataframe

我有一个以下形式的数据框:

code        date        count
AA          201205      1
AA          201309      2
AA          201310      12
AA          201410      7
BB          201305      3
BB          201309      1
CC          201404      5

日期是yyyymm。

我想按照“'代码”中的值对数据进行分组。对于过去6个月以及之前的所有时间,每个代码值的计数值和列的总和。所以新数据框看起来像:

code        last 6 months       before that
AA          7                   15
BB          0                   4
CC          5                   0

关于实现这一目标的最佳方法的任何想法?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

也许:

>>> gr = df.groupby(['code', df['date'] > 201403])
>>> pv = gr['count'].sum().unstack().fillna(0)
>>> namer = {True:'last 6 months', False:'before that'}.get 
>>> pv.columns = list(map(namer, pv.columns))
>>> pv
      before that  last 6 months
code                            
AA             15              7
BB              4              0
CC              0              5