我有一个数据框,我想在其中添加一个列,其中包含基于 2(可能是 3)个不同列中的条件的值的条件总和。我正在尝试使用 lambda 函数,例如:df['newColumn'] = df[['colA','colB']].apply(lambda x,y: df.loc[df['colA']==x].loc[df['colB']==y]['Total Amount'].sum())这种方法不起作用,尽管当我单独测试 .loc 语句并使用值代替 x 和 y 时,我确实得到了正确的总和。如果可能的话,我想引入另一列。我得到的错误是:“()缺少 1 个必需的位置参数:'y'”,'发生在索引 colA。非常感谢任何帮助,
1 回答
Helenr
TA贡献1780条经验 获得超4个赞
我的猜测是你想要这个:
df = pd.DataFrame({'A': [1,1,2,2,3,3],
'B': [2,2,2,3,3,3],
'TotalAmount': [10,20,30,40,50,60]})
df['NewColumn'] = df.groupby(['A', 'B'])['TotalAmount'].transform('sum')
df
# A B TotalAmount NewColumn
#0 1 2 10 30
#1 1 2 20 30
#2 2 2 30 30
#3 2 3 40 40
#4 3 3 50 110
#5 3 3 60 110
添加回答
举报
0/150
提交
取消