Cumsum 作为现有 Pandas 数据中的新列

Cumsum as a new column in an existing Pandas data

我有一个 pandas 数据框定义为:

A   B   SUM_C      
1   1   10     
1   2   20   

我想对 SUM_C 求和并将其作为新列添加到同一数据框中。换句话说,我的最终目标是拥有一个如下所示的数据框:

A   B   SUM_C   CUMSUM_C       
1   1   10      10     
1   2   20      30   

Using cumsum in pandas on group() 显示了生成新数据框的可能性,其中列名 SUM_C 被替换为累积和。但是,我的要求是将累计总和作为新列添加到现有数据框中。

谢谢

只需在 pandas.Series df['SUM_C'] 上应用 cumsum 并将其分配给新列:

df['CUMSUM_C'] = df['SUM_C'].cumsum()

结果:

df
Out[34]: 
   A  B  SUM_C  CUMSUM_C
0  1  1     10       10
1  1  2     20       30

概述:您可以使用数据框聚合并将其传递给用户定义的函数

def accumulate(values):
    """The accumulate function takes the offset previous numbers in a series and sums them.
      args: a dataframe with a 100 numbers
 """
    offset=0
    accumulate=[]
    for i in np.arange(len(values)):
        offset+=1
        accumulate.append(values[:offset].sum())
    
    return accumulate

  A=pd.DataFrame(np.arange(1,101), columns=['value'])

  A.aggregate(accumulate).plot()