Pandas 2 个累积列的累积总和

时间:2021-01-18 14:53:39

标签: python pandas dataframe

尝试向 Pandas df 添加累积列。

已经尝试过这段代码,但得到了一个 NaN:

df['Total_Coins_Bought'] = df.query("side == 'buy'")['amount'].cumsum()
df['Total_Coins_Sold'] = -df.query("side == 'sell'")['amount'].cumsum()

df['Total_Coins'] = df['Total_Coins_Bought']-df['Total_Coins_Sold'] 

只希望建立 Total_Coins 列; 2 个字段 Total_Coins_Bought 和 Total_Coins_Sold 是我试图一步一步构建这个

enter image description here

1 个答案:

答案 0 :(得分:0)

df["sign_amount"] = df["amount"] * df["side"].map({"buy": +1, "sell": -1})
df["total_coins"] = df["sign_amount"].cumsum()

基本上,我添加了一个 sign_amount 列,它与 amount 列相同,但是如果 side 是“购买”则乘以 +1,如果 side 乘以 -1 {1}} 是“卖”。 cumsum 列的 sign_amount 应该是您想要的结果。