求列的前值之和

-3 投票
2 回答
1871 浏览
提问于 2025-04-18 09:09

我遇到了一个比较简单的问题,但找不到解决办法。

我们来看一个表格:

A

1

4

5

2

我想创建一个新列(B),这个列的值是从第一行到当前行的A列的总和:

A B

1 1

4 5

5 10

2 12

我一直在思考和寻找解决方案,但一直没有找到。你有什么想法吗?

我的思路是:

  1. 先创建一个默认值为0的列。df['B']=0
  2. 然后用df['B']=df.B.shift()+df.A来计算。

有没有办法用Python来解决这个问题呢?

2 个回答

0

试试这个:

t = [1,4,5,2]

f2 = 0
for f1 in t:
    f2 += f1
    print f1, f2
0

做:

lA = [1,4,5,2]

lB = [sum(l[0:i+1]) for i in range(len(l))]

如果你不明白列表推导式,这里有一个更详细的代码版本:

lB = []
for i in range(len(l)):
    lStuffAbove = l[0:i+1]
    lB.append(sum(lStuffAbove))

撰写回答