Создание сводной таблицы с помощью pandas
Пандас (Pandas) - это библиотека для анализа и обработки данных, которая предоставляет высокоэффективные и гибкие структуры данных, основанные на DataFrame.
Одним из мощных инструментов для анализа данных является функция pivot_table.
Функция pivot_table является одной из ключевых возможностей пакета pandas и позволяет преобразовывать данные, агрегировать их и создавать сводные таблицы. Эта функция предоставляет аналог сводной таблицы в Excel и позволяет группировать данные по одному или нескольким столбцам и применять агрегирующую функцию к другому столбцу с использованием некоторых параметров.
Для использования функции pivot_table сначала необходимо импортировать библиотеку pandas:
import pandas as pd
Затем мы можем создать DataFrame - основную структуру данных пандас. В качестве примера, давайте создадим DataFrame с данными о продажах компании:
data = {'Дата': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02'],
'Продукт': ['А', 'Б', 'А', 'Б'],
'Сумма': [1000, 1500, 800, 1200],
'Сотрудник': ['Иван', 'Петр', 'Иван', 'Петр']}
df = pd.DataFrame(data)
Теперь, когда у нас есть DataFrame с данными о продажах, мы можем использовать функцию pivot_table для создания сводной таблицы. Давайте сгруппируем данные по дате и продукту и посчитаем сумму продаж:
pivot_df = df.pivot_table(values='Сумма', index='Дата', columns='Продукт', aggfunc='sum')
В этом примере параметр values указывает столбец, для которого мы хотим произвести агрегацию, параметр index определяет столбец или столбцы для группировки, а параметр columns - столбец, значения которого станут столбцами в новой сводной таблице. Параметр aggfunc определяет агрегирующую функцию, в данном случае это сумма.
После выполнения кода, сводная таблица будет содержать данные о суммах продаж по дате и продукту:
Продукт А Б
Дата
2021-01-01 1000 1500
2021-01-02 800 1200
Таким образом, мы видим, что функция pivot_table позволяет группировать данные по нескольким столбцам и выполнять агрегацию для других столбцов. Это очень удобно для анализа данных и создания сводных таблиц.
Кроме того, функция pivot_table поддерживает и другие опции, такие как агрегирование по нескольким функциям, заполнение отсутствующих значений, а также использование собственных агрегирующих функций. Примеры кода для этих опций:
# Агрегирование по разным функциям
pivot_df = df.pivot_table(values='Сумма', index='Дата', columns='Продукт', aggfunc=['sum', 'mean', 'count'])
# Заполнение отсутствующих значений
pivot_df = df.pivot_table(values='Сумма', index='Дата', columns='Продукт', aggfunc='sum', fill_value=0)
# Использование собственной агрегирующей функции
def custom_agg(x):
return x.max() - x.min()
pivot_df = df.pivot_table(values='Сумма', index='Дата', columns='Продукт', aggfunc=custom_agg)
Таким образом, функция pivot_table является мощным инструментом для анализа данных в пакете pandas. Она позволяет гибко преобразовывать данные и создавать сводные таблицы для агрегации информации. В связи с этим, pivot_table обладает высокой ценностью при работе с большими объемами данных и проведении анализа.