weixin_48119641 2021-10-27 16:27 采纳率: 33.3%
浏览 53
已结题

求 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
  • 写回答

3条回答 默认 最新

  • chuifengde 2021-10-28 08:11
    关注
    
    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)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月5日
  • 已采纳回答 10月28日
  • 修改了问题 10月27日
  • 修改了问题 10月27日
  • 展开全部