我有一個數(shù)據(jù)框,我想在其中添加一個列,其中包含基于 2(可能是 3)個不同列中的條件的值的條件總和。我正在嘗試使用 lambda 函數(shù),例如: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 個必需的位置參數(shù):'y'”,'發(fā)生在索引 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
提交
取消