Использование pandas agg для эффективной обработки данных
Pandas agg (от aggregation) является методом агрегирования данных в библиотеке Pandas. С помощью этого метода можно сгруппировать данные по значениям в одном или более столбцах DataFrame и вычислить для каждой группы одно или несколько агрегированных значений.
Пример использования метода agg может выглядеть следующим образом:
python
import pandas as pd
# Создание DataFrame с данными о студентах
students = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
'Age': [20, 19, 21, 18, 20],
'Gender': ['F', 'M', 'M', 'M', 'F'],
'GPA': [3.5, 3.2, 3.8, 2.5, 3.9],
'Major': ['Math', 'Econ', 'CS', 'English', 'Physics']
})
# Группировка данных по полу и вычисление среднего возраста и среднего GPA для каждой группы
gender_grouped = students.groupby('Gender').agg({
'Age': 'mean',
'GPA': 'mean'
})
print(gender_grouped)
В данном примере мы создаем DataFrame с данными о студентах и группируем их по полу (используя метод groupby). Затем мы используем метод agg для вычисления среднего возраста и среднего GPA для каждой группы. Мы передаем методу agg словарь, в котором ключи - это имена столбцов, а значения - это функции, которые будут применяться к соответствующим столбцам.
В результате выполнения метода agg мы получим новый DataFrame, который содержит средний возраст и средний GPA для каждой группы (женщин и мужчин):
Age GPA
Gender
F 20.000000 3.70
M 19.333333 3.166667
В данном примере мы использовали простейшую функцию - среднее значение. Однако метод agg позволяет использовать любые функции, которые можно применять к столбцам DataFrame, например, sum, min, max и т.д. Также можно определить свои собственные функции и передавать их методу agg.
Кроме того, можно группировать данные по нескольким столбцам. Для этого нужно передать в метод groupby список имен столбцов:
python
# Группировка данных по полу и направлению обучения и вычисление среднего возраста и среднего GPA для каждой группы
major_grouped = students.groupby(['Gender', 'Major']).agg({
'Age': 'mean',
'GPA': 'mean'
})
print(major_grouped)
В данном случае мы группируем данные по полу и направлению обучения, что позволяет получить более детальную информацию о студентах:
Age GPA
Gender Major
F Math 20.000000 3.50
Physics 20.000000 3.90
M CS 21.000000 3.800000
Econ 19.000000 3.200000
English 18.000000 2.500000
Метод agg является мощным инструментом для работы с данными в Pandas. Он позволяет выполнять различные операции агрегирования, используя функции, которые могут быть заранее определены или созданы пользователем, и получать группированные данные для дальнейшего анализа.