如何将函数与个人定义的函数一起使用?

2024-04-19 07:01:46 发布

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

这是我的密码

def calculsComplexesPlusieursColonnes(total_bill,tip,sex):
        if sex=="Female":return total_bill+tip
        else : return total_bill+2*tip

    tips['résultat'] = tips.apply(lambda row: calculsComplexesPlusieursColonnes(row['total_bill'], row['tip'],row['sex']), axis=1)
    tips=tips.assign(résultat_bis=lambda row: calculsComplexesPlusieursColonnes(row.total_bill,row.tip,row.sex))

我尝试了两种使用函数创建新变量的方法:第一种方法工作正常(var résultat),但是第二种方法(var résultatèbis),最后一行代码不工作:我得到

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我该怎么做才能让它工作? 此致敬礼


Tags: 方法lambda密码returnifvardefrow
1条回答
网友
1楼 · 发布于 2024-04-19 07:01:46

您只需要:

tips['résultat']=( tips['sex'].ne('Female')
                              .astype(int)
                              .add(1)
                              .mul(tips['tip'])
                              .add(tips['total_bill']) )

基本上用Series.ne+Series.astype我们创建了一个序列,其中1表示性别不等于女性,0表示性别等于女性。然后我们给这个级数加1,然后只剩下相乘和相应的级数相加

我建议你看看: ^{}^{}

相关问题 更多 >