【问题标题】:Intra-group calculations on Pandas dataframePandas 数据框的组内计算
【发布时间】:2014-10-19 11:39:08
【问题描述】:

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

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

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

提前感谢您的帮助。

【问题讨论】:

    标签: python pandas grouping dataframe


    【解决方案1】:

    也许:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-19
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多