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,不计算,保持上个值