求 python3.8 有条件的递增递减算法

C列的数据是我手填的,是这次要帮忙的目的,怎么算出C列数据。

需求:C列的计算数据是通过A列递增和B列递减,C列递减到0后不再递减。

数据如下:

A B C # 以下描述C列需求
2 0 2 # 加A列的数值
0 1 1 # 减B列的数值
0 1 0 # 减B列的数值
0 0 0 # A列B列均为0,不计算,保持上个值
0 1 0 # C列数据为0,不减,保持C列>=0
2 0 2 # 加A列的数值
0 0 2 # A列B列均为0,不计算,保持上个值
3 0 5 # 加A列的数值
0 1 4 # 减B列的数值
0 2 2 # 减B列的数值
0 0 2 # A列B列均为0,不计算,保持上个值

def buy_sell_qty(df):
    # df为DataFrame类型
    # df['C']为新列,怎么修正下面错误
    df['C'] = df['C'] + df['A']
    df.loc[df['C'] - df['B'] >= 0 , 'C'] = df['C'] - df['B']
    df['C'].fillna(method='ffill', inplace=True)
    return df

import pandas as pd

d = {'A': [2, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0],
     'B': [0, 1, 1, 0, 1, 0, 0, 0, 1, 2, 0],
     }

df = pd.DataFrame(d)

A , C= 0, 0
l = []
for i in df.iterrows():
    A,B = i[1][0], i[1][1]
    C = C + A - B
    C = 0 if C <= 0 else C 
    l.append(C)
    
df['C'] = pd.Series(l)
print(df)

啥规律,猜不出来

A B C
2 0 2 # 加A列的数值
0 1 1 # 减B列的数值
0 1 0 # 减B列的数值
0 0 0 # A列B列均为0,不计算,保持上个值
0 1 0 # C列数据为0,不减,保持C列>=0
2 0 2 # 加A列的数值
0 0 2 # A列B列均为0,不计算,保持上个值
3 0 5 # 加A列的数值
0 1 4 # 减B列的数值
0 2 2 # 减B列的数值
0 0 2 # A列B列均为0,不计算,保持上个值