AGG - Оптимизируйте свой бизнес с помощью автоматической аналитики и отчетности
Функция agg является одной из наиболее важных функций Pandas для агрегирования данных. Она используется для выполнения определенных вычислений над группой данных в DataFrame, на основе заданных параметров.
Синтаксис agg () выглядит следующим образом:
python
DataFrame.agg(func, axis=0, *args, **kwargs)
Здесь func означает функцию или итерируемый объект функций, которые нужно применить к DataFrame или объектам Series. Мы можем передать одну или несколько функций в func.
Давайте рассмотрим несколько примеров, чтобы лучше понять, как можно использовать функцию agg в коде Python. Предположим, у нас есть набор данных, который содержит информацию о продажах одного товара в определенном периоде времени. Наша цель - проанализировать данные и получить следующую информацию:
1. Среднюю цену товара за каждый год;
2. Общее количество продаж за каждый месяц;
3. Максимальную и минимальную цены товара за каждый день в месяце.
Для этого мы можем сделать следующее:
python
import pandas as pd
import numpy as np
# Создаем собственный DataFrame для анализа
data = {'date': ['2019-01-01', '2019-01-04', '2019-02-14', '2019-02-18', '2019-03-01', '2019-03-15'],
'price': [100, 120, 140, 115, 130, 145]}
df = pd.DataFrame(data)
# Преобразуем дату в формат datetime
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
# Создаем группу по годам и считаем среднюю цену товара
grouped_year = df.groupby(pd.Grouper(freq='Y')).agg({'price': np.mean})
print("Средняя цена товара за каждый год")
print(grouped_year)
# Создаем группу по месяцам и считаем общее количество продаж
grouped_month = df.groupby(pd.Grouper(freq='M')).agg({'price': np.sum})
print("Общее количество продаж за каждый месяц")
print(grouped_month)
# Создаем группу по дням месяца и считаем максимальную и минимальную цены товара
grouped_day = df.groupby(pd.Grouper(freq='D')).agg({'price': [np.max, np.min]})
print("Максимальная и минимальная цены товара за каждый день в месяце")
print(grouped_day)
Результат будет таким:
Средняя цена товара за каждый год
price
date
2019-12-31 125.833333
Общее количество продаж за каждый месяц
price
date
2019-01-31 220
2019-02-28 255
2019-03-31 275
Максимальная и минимальная цены товара за каждый день в месяце
price
amax amin
date
2019-01-01 100 100
2019-01-02 NaN NaN
2019-01-03 NaN NaN
2019-01-04 120 120
2019-01-05 NaN NaN
... ... ...
2019-03-27 NaN NaN
2019-03-28 NaN NaN
2019-03-29 NaN NaN
2019-03-30 NaN NaN
2019-03-31 145 130
[90 rows x 2 columns]
В первом примере мы создали группу данных по годам и с помощью agg нашли среднюю цену товара в каждом году. Во втором примере мы создали группу по месяцам и нашли общее количество продаж за каждый месяц. В третьем примере мы сгруппировали данные по дням месяца и нашли максимальную и минимальную цены товара для каждого дня в месяце.
Применение функции agg в Pandas позволяет легко и быстро агрегировать данные и получать необходимую информацию без необходимости обращаться к каждому элементу DataFrame или Series отдельно.