Python If Else条件创建新列

Python If Else条件创建新列,python,if-statement,conditional-statements,Python,If Statement,Conditional Statements,我有一个关于健身活动的数据集。我有如下数据: VisitNum Date Trainer CaloriesBurned 1 01/04/20 Mike 500 2 01/06/20 Cindy 600 3 01/07/20 Lucy 550 4 01/10/20 Mike 650 5 01/15/20 Lucy 625

我有一个关于健身活动的数据集。我有如下数据:

VisitNum   Date       Trainer   CaloriesBurned
1          01/04/20   Mike      500
2          01/06/20   Cindy     600
3          01/07/20   Lucy      550
4          01/10/20   Mike      650
5          01/15/20   Lucy      625
6          01/16/20   Lucy      575
7          01/19/20   Mike      525
8          01/21/20   Rebecca   592
9          01/26/20   Lucy      603
10         01/29/20   Mike      559
我的目标是比较训练师消耗的卡路里。这只是数据的快照,有超过30个不同的培训师。我不想在图中包括所有培训师,所以我想创建一个新变量“Trainer2”,它查看每个培训师的访问次数,如果该数字小于3,那么培训师的新值将是“其他”

这是我迄今为止的尝试:

if data["Trainer"].value_counts() >= 3:
    data["Trainer2"]==data.Trainer
else: 
    data["Trainer2"]=="Other"
我运行此代码时出错,我不确定我做错了什么:

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

data["TrainerCounts"]=data["Trainer"].map(data['Trainer'].value_counts())

def f(row):
    if row['TrainerCounts'] >= 3:
        Trainer2 = row['Trainer']
    elif row['TrainerCounts'] < 3:
        Trainer2 = "Other"
    return Trainer2

data['Trainer2'] = data.apply(f, axis=1)
data[“TrainerCounts”]=data[“Trainer”].map(data['Trainer'].value_counts())
def f(世界其他地区):
如果行['TrainerCounts']>=3:
培训师2=世界其他地区[“培训师”]
elif行['TrainerCounts']<3:
Trainer2=“其他”
返程列车员2
数据['Trainer2']=数据。应用(f,轴=1)

在else:statement中,您有
=
而不是
=
。编辑:您应该将第一个if语句更改为使用作为赋值运算符的单个
=
,而不是作为比较运算符的双
=
。现在,您要做的就是检查
数据[“Trainer2”]
是否等于某个值,并且不改变其值all@chung使用
=
而不是
=
会将该表达式计算为布尔值,然后丢弃该值。当然,这可能不是他想要的,但不会引发异常。这方面的
“Trainer”
是什么?它是否是某个特定培训师的占位符,那么,您的代码是否会改为“Lucy”?运行此代码时,我收到一个错误,请显示错误。值错误:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。