【问题标题】:Cumulative sum within a group组内累计
【发布时间】:2014-07-12 04:15:03
【问题描述】:

假设我有以下多索引数据框:

              A
H1   one      1
     two      0
     three    1
     four     2
H2   one      1
     two      4

我想在一个新列上计算组内的滚动累积和,以便输出为:

              A   sum
H1   one      1     1
     two      0     1
     three    1     2
     four     2     4
H2   one      1     1   
     two      4     5

如何在 Pandas 中做到这一点? (我正在使用master 分支顺便说一句)

【问题讨论】:

  • @DSM 我刚刚纠正了错误。谢谢

标签: python pandas


【解决方案1】:

我认为您需要做的就是将level 参数与groupby 一起使用(如教程的groupby with multiindex 部分所述):

>>> df["sum"] = df.groupby(level=0)["A"].cumsum()
>>> df
          A  sum

H1 one    1    1
   two    0    1
   three  1    2
   four   2    4
H2 one    1    1
   two    4    5

【讨论】:

  • 谢谢。这在技术上是 transformapply 操作吗?我一直不太明白其中的区别。
  • apply 是组上最通用的操作类别,所以很多事情都归于它的保护范围内。变换操作的不同之处在于它们产生的东西像输入一样被索引,这发生在这里,所以我想你可以把它想象成一个变换。
猜你喜欢
  • 2018-03-02
  • 1970-01-01
  • 1970-01-01
  • 2019-05-14
  • 2019-06-26
  • 2015-10-17
  • 1970-01-01
  • 2014-08-11
  • 2013-05-26
相关资源
最近更新 更多