【发布时间】:2017-04-25 17:33:09
【问题描述】:
我有一个包含以下列的数据框:
|---------------------|
| A |
|---------------------|
| 0 |
|---------------------|
| 2.63 |
|---------------------|
| 7.10 |
|---------------------|
| 5.70 |
|---------------------|
| 6.96 |
|---------------------|
| 7.58 |
|---------------------|
| 3.3 |
|---------------------|
| 1.93 |
|---------------------|
我需要得到累计和,但重点是有点特殊。第一个元素应该是0,下面是从上一列开始的累积和,所以在这种情况下我需要产生:
|---------------------|
| B |
|---------------------|
| 0 |
|---------------------|
| 0 |
|---------------------|
| 2.63 |
|---------------------|
| 9.73 |
|---------------------|
| 15.43 |
|---------------------|
| 22.39 |
|---------------------|
| 29.97 |
|---------------------|
| 33.27 |
|---------------------|
我知道在没有我要求的条件时很容易实现:
df['B'] = df.A.cumsum()
但是,我不知道如何解决这个问题,我正在考虑实现一个 for 循环,但我希望有一种使用 pandas 的简单方法。
【问题讨论】:
-
你只需要在
cumsum后面加上一个shift:df.A.cumsum().shift().fillna(0) -
@Psidom,谢谢。
标签: python pandas dataframe cumsum