使用条件将列添加为另一列的总和

时间:2017-01-25 21:03:40

标签: python pandas

我需要编写一个代码来创建新的B列,嵌入第一列A的cumsum。

当cumsum值<&lt; 0,则B中的值应为0.

然后再次开始cumsum直到下一个值<0。

我搜索类似的答案,但我无法找到符合我案例的答案。谢谢你的帮助。

A       B
1       1
3       4
5       9
7       16
-6      10
-8      2
-10     *0*
6       6
-15     *0*
11      11

2 个答案:

答案 0 :(得分:1)

在A上设置循环并获得总数。如果总数小于0,则将其设置为0.然后将新总计附加到B

您有A = [ 1, ...,],总计= 0,B = []

total = 0
B = []
for i in range(len(A)):
   # process the sum
    total += A[i]
    if total < 0:
        total = 0
    B.append(total)

答案 1 :(得分:1)

这是一个非Pandas答案,它迭代地循环遍历A列中的值,并通过永远低于0来创建B列。

result = []
cur_res = 0
for i in df.A:
    cur_res = max(cur_res + i, 0)
    result.append(cur_res)

df['B'] = result