Условие If-Else для создания нового столбца - PullRequest
0 голосов
/ 03 марта 2020

У меня есть набор данных по активности в тренажерном зале. У меня есть данные, которые выглядят следующим образом:

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 голосов
/ 05 марта 2020

Я понял это:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...