«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как заменить определенные значения в столбце DataFrame Pandas на основе условий?

Как заменить определенные значения в столбце DataFrame Pandas на основе условий?

Опубликовано 6 ноября 2024 г.
Просматривать:441

How to Replace Specific Values in a Pandas DataFrame Column Based on Conditions?

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