如何将熊猫数据框的值与上一行的值求和?

时间:2019-03-10 08:51:29

标签: python pandas

我有一个数据帧,其中前两行如下所示:

             GOOG    AAPL    XOM    IBM      Cash
2009-01-14    0.0   150.0    0.0    0.0  -12745.5
2009-01-15    0.0     0.0    0.0    0.0      -0.0

我希望它为每行添加上一行的值。所以我希望它看起来像这样:

             GOOG    AAPL    XOM    IBM      Cash
2009-01-14    0.0   150.0    0.0    0.0  -12745.5
2009-01-15    0.0   150.0    0.0    0.0      -0.0

我不希望它影响现金栏。

有没有办法在熊猫中轻松做到这一点?

1 个答案:

答案 0 :(得分:3)

DataFrame.cumsum仅用于Index.difference过滤的列:

c = df.columns.difference(['Cash'])
df[c] = df[c].cumsum()
print (df)
            GOOG   AAPL  XOM  IBM     Cash
2009-01-14   0.0  150.0  0.0  0.0 -12745.5
2009-01-15   0.0  150.0  0.0  0.0     -0.0

或根据条件使用DataFrame.loc

c = df.columns != 'Cash'
df.loc[:, c] = df.loc[:, c].cumsum()