代码之家  ›  专栏  ›  技术社区  ›  Sterling Butters

python pandas:算术前填充

  •  0
  • Sterling Butters  · 技术社区  · 7 年前

    我有以下数据框:

                AAPL shares  GOOG shares  MSFT shares
    date                                             
    2019-01-01          NaN         10.0          NaN
    2019-01-05          NaN          NaN         15.0
    2019-01-12          NaN          NaN          7.0
    2019-01-13          3.0          NaN          NaN
    2019-01-14          NaN         -5.0          NaN
    

    应用正向填充后:

    print(df.set_index('date').sort_index().fillna(method='ffill').fillna(value=0))

    我得到:

                AAPL shares  GOOG shares  MSFT shares
    date                                             
    2019-01-01          0.0         10.0          0.0
    2019-01-05          0.0         10.0         15.0
    2019-01-12          0.0         10.0          7.0
    2019-01-13          3.0         10.0          7.0
    2019-01-14          3.0         -5.0          7.0
    

    我的问题是,有没有办法用简单的加法来补充?我想要的结果是:

                AAPL shares  GOOG shares  MSFT shares
    date                                             
    2019-01-01          0.0         10.0          0.0
    2019-01-05          0.0         10.0         15.0
    2019-01-12          0.0         10.0         22.0
    2019-01-13          3.0         10.0         22.0
    2019-01-14          3.0          5.0         22.0
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   BENY    7 年前

    你可以查一下 cumsum

    df.fillna(0).cumsum()
                AAPLshares  GOOGshares  MSFTshares
    date                                          
    2019-01-01         0.0        10.0         0.0
    2019-01-05         0.0        10.0        15.0
    2019-01-12         0.0        10.0        22.0
    2019-01-13         3.0        10.0        22.0
    2019-01-14         3.0         5.0        22.0