我需要编写一个代码来创建新的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
答案 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