python pandas lambda有2个及更多变量[重复]
Posted
技术标签:
【中文标题】python pandas lambda有2个及更多变量[重复]【英文标题】:python pandas lambda with 2 and more variables [duplicate] 【发布时间】:2019-04-11 22:57:03 【问题描述】:我有一个数据框,我想根据 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】:我猜你想要这个:
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
【讨论】:
@jezrael 我相信我应该得到破译分数:) 谢谢! python 3 中有没有办法使用 lambda 表达式来做到这一点?以上是关于python pandas lambda有2个及更多变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章
我希望使用 lambda 和 pandas 使用 pythonic 方式优化代码
Python Pandas groupby 应用 lambda 参数