#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'