尝试向 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 是我试图一步一步构建这个
答案 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
应该是您想要的结果。