Использование сводных таблиц в Pandas
Пивот-таблица в библиотеке Pandas является мощным инструментом для анализа и редактирования данных. В данном ответе мы рассмотрим, что такое пивот-таблицы, как использовать их в Pandas, и приведем несколько примеров кода.
Пивот-таблица – это специфический тип таблицы, который позволяет сгруппировать данные по одному или нескольким столбцам и агрегировать значения других столбцов по этим группам. Она часто используется в анализе данных для получения сводной информации и построения отчетов.
В библиотеке Pandas пивот-таблицы создаются с помощью функции pivot_table()
. Синтаксис этой функции следующий:
pd.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', ...)
data
: исходный DataFrame, из которого нужно получить пивот-таблицу.values
: столбец(ы), значения которого(ых) нужно агрегировать (по умолчанию, этот параметр равенNone
и агрегируются все столбцы).index
: столбцы, по которым нужно группировать данные (они будут стать индексом пивот-таблицы).columns
: столбцы, значения которых будут разделены по колонкам пивот-таблицы.aggfunc
: функция агрегации, применяемая к значениям (по умолчанию, используется среднее значениеmean()
).
Давайте посмотрим на примеры использования пивот-таблиц в Pandas.
1. Пример с одним столбцом значения и одним столбцом группировки:
import pandas as pd
# Создаем исходный DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35, 40, 45, 50],
'Salary': [50000, 60000, 70000, 80000, 90000, 100000]}
df = pd.DataFrame(data)
# Создаем пивот-таблицу по столбцу Name с агрегацией по среднему значению зарплаты
pivot_table = pd.pivot_table(df, values='Salary', index='Name', aggfunc='mean')
print(pivot_table)
Результат:
Salary
Name
Alice 65000
Bob 75000
Charlie 85000
В этом примере мы создали пивот-таблицу, где производится группировка по столбцу 'Name', а значения зарплаты агрегируются по среднему значению.
2. Пример с несколькими столбцами значений и группировкой:
import pandas as pd
# Создаем исходный DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob', 'Charlie'],
'Gender': ['Female', 'Male', 'Male', 'Female', 'Male', 'Male'],
'Age': [25, 30, 35, 40, 45, 50],
'Salary': [50000, 60000, 70000, 80000, 90000, 100000]}
df = pd.DataFrame(data)
# Создаем пивот-таблицу по столбцам Name и Gender с агрегацией по максимальной зарплате
pivot_table = pd.pivot_table(df, values='Salary', index=['Name', 'Gender'], aggfunc='max')
print(pivot_table)
Результат:
Salary
Name Gender
Alice Female 80000
Bob Male 90000
Charlie Male 100000
В этом примере мы создали пивот-таблицу с группировкой по столбцам 'Name' и 'Gender', и агрегацией по максимальной зарплате.
Это лишь некоторые примеры использования пивот-таблиц в Pandas. Библиотека также предлагает полный набор функций для агрегации и манипуляций с данными в пивот-таблицах. Вы можете узнать больше о них в официальной документации Pandas.
Надеюсь, эти примеры помогут вам с пониманием и использованием пивот-таблиц в Pandas. Если у вас возникнут дополнительные вопросы, буду рад на них ответить!