Множественное условное фильтрование и применение пользовательских функций
Множественное условное фильтрование в pandas позволяет выбирать данные на основе нескольких условий, а применение пользовательских функций (или apply-методов) дает гибкость в обработке данных. Вот подробное объяснение и примеры.
Множественное условное фильтрование
В pandas вы можете фильтровать DataFrame, используя несколько условий с помощью логических операторов & (и), | (или) и ~ (не).
Пример:
import pandas as pd# Создаем DataFramedata ={'Name': ['Alice','Bob','Charlie','David'],'Age': [25,30,35,40],'Salary': [50000,60000,70000,80000]}df = pd.DataFrame(data)# Фильтрация: Возраст больше 30 и зарплата больше 60000filtered_df = df[(df['Age']>30) & (df['Salary']>60000)]print(filtered_df)
Вывод:
Name Age Salary
2 Charlie 35 70000
3 David 40 80000
Применение пользовательских функций
Вы можете использовать функцию apply() для применения пользовательских функций к DataFrame или Series.
Пример 1: Применение функции к столбцу
import pandas as pd# Создаем DataFramedata ={'Name': ['Alice','Bob','Charlie','David'],'Age': [25,30,35,40]}df = pd.DataFrame(data)# Пользовательская функция для проверки, является ли возраст взрослымdefis_adult(age):return age >=18# Применение функции к столбцу 'Age'df['Is_Adult']= df['Age'].apply(is_adult)print(df)
Вывод:
Name Age Is_Adult
0 Alice 25 True
1 Bob 30 True
2 Charlie 35 True
3 David 40 True
Пример 2: Применение функции к строкам DataFrame
import pandas as pd# Создаем DataFramedata ={'Name': ['Alice','Bob','Charlie','David'],'Age': [25,30,35,40],'Salary': [50000,60000,70000,80000]}df = pd.DataFrame(data)# Пользовательская функция для расчета налоговdefcalculate_tax(row):if row['Salary']>60000:return row['Salary']*0.2else:return row['Salary']*0.1# Применение функции к строкам DataFramedf['Tax']= df.apply(calculate_tax, axis=1)print(df)
Вывод:
Name Age Salary Tax
0 Alice 25 50000 5000.0
1 Bob 30 60000 6000.0
2 Charlie 35 70000 14000.0
3 David 40 80000 16000.0
Заключение
Множественное условное фильтрование позволяет выбирать данные по нескольким критериям, а применение пользовательских функций через apply() позволяет гибко обрабатывать и изменять данные в DataFrame. Эти инструменты особенно полезны при работе с большими наборами данных и сложными условиями обработки.