Панды: где найти, питание и место обитания
Когда мы говорим о фреймворке pandas, операция "where" используется для фильтрации данных на основе определенного условия, и затем возвращается новый фрейм со значениями, удовлетворяющими этому условию. Это очень полезная и часто используемая операция, которая позволяет нам выбирать и/или изменять значения в фрейме данных на основе определенных критериев.
Давайте рассмотрим несколько примеров использования операции "where" в pandas, чтобы лучше понять, как она работает.
Пример 1: Фильтрация по условию и замена значений
Допустим, у нас есть фрейм данных, содержащий информацию о студентах, и мы хотим отфильтровать только тех студентов, у которых средний балл выше 70. Мы также хотим заменить значения ниже 70 на NaN (Not a Number).
import pandas as pd
# Создание фрейма данных
data = {'Имя': ['Алексей', 'Иван', 'Мария', 'Елена'],
'Средний балл': [85, 60, 95, 70]}
df = pd.DataFrame(data)
# Фильтрация по условию и замена значений
df_filtered = df['Средний балл'].where(df['Средний балл'] > 70, other=pd.NaT)
print(df_filtered)
Результат:
0 85.0
1 NaN
2 95.0
3 70.0
Name: Средний балл, dtype: float64
В данном примере мы использовали операцию "where" для фильтрации значений из столбца 'Средний балл'. Значения, удовлетворяющие условию (больше 70), остаются неизменными, а значения, не удовлетворяющие условию, заменяются на NaN.
Пример 2: Изменение значений в другом столбце на основе условия
Допустим, у нас есть фрейм данных о продажах, и мы хотим увеличить цену продажи на 5% только для тех товаров, где количество продаж больше 100. Для этого мы можем использовать операцию "where" вместе с функцией "apply".
# Создание фрейма данных
data = {'Товар': ['Яблоки', 'Молоко', 'Хлеб', 'Сок'],
'Количество продаж': [200, 50, 150, 80],
'Цена продажи': [10, 5, 3, 2]}
df = pd.DataFrame(data)
# Изменение значений в столбце 'Цена продажи' на основе условия
df['Цена продажи'] = df['Цена продажи'].where(df['Количество продаж'] > 100, other=df['Цена продажи'] * 1.05)
print(df)
Результат:
Товар Количество продаж Цена продажи
0 Яблоки 200 10.00
1 Молоко 50 5.25
2 Хлеб 150 3.00
3 Сок 80 2.10
В этом примере мы использовали операцию "where" вместе с функцией "apply", чтобы изменить значения в столбце 'Цена продажи'. Значения, удовлетворяющие условию (больше 100 для столбца 'Количество продаж'), остаются неизменными, а значения, не удовлетворяющие условию, изменяются на текущую цену продажи, умноженную на 1.05.
В заключение, операция "where" в pandas является мощным инструментом для фильтрации и изменения данных в фрейме данных. Она позволяет нам выбирать только нужные нам значения и изменять их на основе заданных условий. Это лишь некоторые примеры использования операции "where", и вы можете настроить ее под свои потребности с помощью различных условий и функций.