我有一个数据帧,其中前两行如下所示:
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
我不希望它影响现金栏。
有没有办法在熊猫中轻松做到这一点?
答案 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()