groupby() cumsum() with 4 columns



这段代码的正确语法是什么:

db_deals['nem_col'] = db_deals.groupby(['client_id', 'acc_number'])[['swap','profit']].cumsum()

对于唯一的client_idacc_number列,我想对swapprofit列的累积值求和。

错误信息是:

ValueError: Wrong number of items passed 2, placement implies 1
  1. 您可以使用agg()并声明您希望将哪些函数应用于哪些列。
  2. sum(axis=1)对步骤#1的列输出进行求和
  3. sort_values()来证明它是正确的
df = pd.DataFrame({"client_id":np.random.randint(1,3, 15),
"acc_number":np.random.randint(150,155, 15),
"swap":np.random.randint(2,8, 15),
"profit":np.random.randint(50,75, 15),
})
df = (df.assign(nem_col=
df.groupby(["client_id","acc_number"]).agg({c:"cumsum" for c in ["swap","profit"]}).sum(axis=1))
.sort_values(["client_id","acc_number"])
)

最新更新