If-Else条件创建新列

时间:2020-03-03 16:53:35

标签: 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
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,则Trainer的新值将是成为“其他”。

这是我到目前为止的尝试:

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().

1 个答案:

答案 0 :(得分:0)

我知道了:

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)