python使用2个或更多变量创建lambda

2024-10-02 12:36:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个dataframe,我想在其中添加一个列,其中包含基于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时,我得到了正确的和,但是这种方法不起作用。如果可能的话,我想再增加一个专栏。Im获取的错误是:“()缺少1个必需的位置参数:在索引处出现”“y”“。”。 非常感谢您的帮助


Tags: 方法lambda函数dataframedf语句条件amount
1条回答
网友
1楼 · 发布于 2024-10-02 12:36:13

我猜你想要这个:

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

相关问题 更多 >

    热门问题