【问题标题】:using cumsum method on multi level index in pandas在 pandas 的多级索引上使用 cumsum 方法
【发布时间】:2018-03-20 21:51:48
【问题描述】:

我有以下多级数据框(部分)

                    Px_last FINAL   RETURN  Stock_RES   WANTED 
Stock   Date                    
ALKM    10/27/2016  0.0013    1     -53.85    NaN       -53.85
         1/17/2017  0.0009    1      111.11   NaN        57.26
         1/18/2017  0.0012    1      233.33   NaN       290.60
         1/23/2018  0.0012    1       16.67   NaN       307.26
         1/30/2018  0.0019    1      -42.11   NaN       265.16
ANDI     12/28/2017 0.0017    1      370.59   NaN       370.59
         2/14/2018  0.0324    1      20.00    NaN       390.59
APPZ     9/22/2017  0.0002    1     -50.00    NaN       -50.00
         12/5/2017  0.0001    1    -100.00    NaN      -150.00
         12/6/2017  0.0001    1       0.00    NaN      -150.00

我可以使用以下代码对整个数据帧进行累积和

df3['TTL_SUM'] = df3['RETURN'].cumsum()

但我想做的是每只股票的累积总和,但是当我执行以下操作时,我得到一列 NaN。有谁知道我在这里做错了什么?查看上面的数据框

df3['Stock_RES'] = df3.groupby(level=0)['RETURN'].sum()

当我将它分配给一个变量时它似乎确实有效,但最终我想在数据框中得到它

RESULTS = df3.groupby(level=0)['RETURN'].sum()

谁能帮帮我。对我来说似乎是相同的代码,所以不确定为什么它不会直接添加到数据框中。

【问题讨论】:

    标签: python pandas indexing cumsum


    【解决方案1】:

    您在 groupby 上下文中使用的是 sum 而不是 cumsum

    df.assign(WANTED1=df.groupby('Stock').RETURN.cumsum())
    
                      Px_last  FINAL  RETURN  Stock_RES  WANTED  WANTED1
    Stock Date                                                          
    ALKM  10/27/2016   0.0013      1  -53.85        NaN  -53.85   -53.85
          1/17/2017    0.0009      1  111.11        NaN   57.26    57.26
          1/18/2017    0.0012      1  233.33        NaN  290.60   290.59
          1/23/2018    0.0012      1   16.67        NaN  307.26   307.26
          1/30/2018    0.0019      1  -42.11        NaN  265.16   265.15
    ANDI  12/28/2017   0.0017      1  370.59        NaN  370.59   370.59
          2/14/2018    0.0324      1   20.00        NaN  390.59   390.59
    APPZ  9/22/2017    0.0002      1  -50.00        NaN  -50.00   -50.00
          12/5/2017    0.0001      1 -100.00        NaN -150.00  -150.00
          12/6/2017    0.0001      1    0.00        NaN -150.00  -150.00
    

    【讨论】:

      猜你喜欢
      • 2019-02-04
      • 2018-07-09
      • 2018-05-20
      • 2020-01-25
      • 1970-01-01
      • 2013-03-23
      • 2019-12-26
      • 2019-11-09
      • 2018-09-11
      相关资源
      最近更新 更多