Условные изменения Python Pandas для правильного заполнения/фильтрации столбцов

#python #pandas #typeerror #conditional-formatting

Вопрос:

Я пытаюсь изменить данные столбца на основе условия. Однако, похоже, он неправильно выполняет условие и заполняет каждое значение в столбце изменением, когда оно не должно изменяться. Вот код:

 uh['Age']= uh['Age']
uh['AgeStatus'] = uh['Age']
uh['AgeStatus'] = uh.loc[uh['AgeStatus'] > 25.0, 'AgeStatus'] = 'Veteran'
 

и он возвращает ошибку типа:

 TypeError: '>' not supported between instances of 'str' and 'float'
 

и фрейм данных:

    Year   Age   Tm  Lg    G   PA  ...  BB   SO     BA    OBP    SLG  AgeStatus
5  2021  28.0  CHW  AL   88  391  ...  18   87  0.299  0.332  0.437    Veteran
2  2021  23.0  TOR  AL  101  443  ...  29   90  0.296  0.348  0.487    Veteran
8  2021  28.0  BOS  AL   97  409  ...  37   75  0.309  0.374  0.522    Veteran
6  2021  26.0  HOU  AL   96  416  ...  53   80  0.272  0.368  0.476    Veteran
5  2021  27.0  ATL  NL  105  431  ...  30  116  0.249  0.305  0.475    Veteran
2  2021  22.0  SDP  NL   87  362  ...  43  102  0.292  0.373  0.651    Veteran
6  2021  28.0  WSN  NL   96  420  ...  26   77  0.322  0.369  0.521    Veteran
[7 rows x 21 columns]
 

Действительно запутался в том, что является причиной этого.

Комментарии:

1. вы должны использовать столбец возраста вместо столбца возраста для состояния uh.loc[uh['Age'] > 25.0, 'AgeStatus'] = 'Veteran'

Ответ №1:

Вам нужно использовать такие условные обозначения, как это uh.loc[uh['Age'] > 25.0, 'AgeStatus'] = 'Veteran'