Pandas DataFrame: целевая замена значений на основе условий
В Pandas часто необходимо изменить определенные значения в DataFrame на основе определенных критериев . Хотя распространенным подходом является использование loc для выбора строк, очень важно понимать, как точно выбрать конкретный столбец для изменения значения.
Рассмотрим следующий DataFrame, в котором мы хотим заменить значения в «Первом сезоне». столбец, превышающий 1990, с целым числом 1:
Team First Season Total Games 0 Dallas Cowboys 1960 894 1 Chicago Bears 1920 1357 2 Green Bay Packers 1921 1339 3 Miami Dolphins 1966 792 4 Baltimore Ravens 1996 326 5 San Franciso 49ers 1950 1003
Первоначальная попытка использования только функции loc привела к замене всех значений в выбранных строках, а не только в целевом столбце. Чтобы исправить это, нам нужно явно указать столбец «Первый сезон» в качестве второго аргумента loc:
df.loc[df['First Season'] > 1990, 'First Season'] = 1
Такой целенаправленный подход гарантирует, что только значения в столбце «Первый сезон», удовлетворяющие условию, заменяются на 1, оставляя остальные столбцы неизменными.
Team First Season Total Games 0 Dallas Cowboys 1960 894 1 Chicago Bears 1920 1357 2 Green Bay Packers 1921 1339 3 Miami Dolphins 1966 792 4 Baltimore Ravens 1 326 5 San Franciso 49ers 1950 1003
В качестве альтернативы, если желаемым результатом является логический индикатор, вы можете использовать условие для создания логической серии и преобразовать ее в целые числа, где True и False преобразуются в 1 и 0 соответственно. :
df['First Season'] = (df['First Season'] > 1990).astype(int)
Этот подход дает DataFrame с обновленными значениями:
Team First Season Total Games 0 Dallas Cowboys 0 894 1 Chicago Bears 0 1357 2 Green Bay Packers 0 1339 3 Miami Dolphins 0 792 4 Baltimore Ravens 1 326 5 San Franciso 49ers 0 1003
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3