Как построить сводную таблицу в pandas

Сводные таблицы являются одним из наиболее полезных инструментов для анализа данных в библиотеке pandas. Они позволяют сгруппировать данные по одному или нескольким признакам и проанализировать полученные результаты. Сводные таблицы позволяют сделать вычисления по нескольким агрегатным функциям, таким как сумма, среднее, минимум и максимум. Они также могут содержать подытоги и общие итоги для каждого уровня группировки.

В библиотеке pandas для создания сводных таблиц используется метод pivot_table(). Он принимает на вход несколько параметров, таких как данные, значения, индексы, столбцы и агрегатные функции. Путем задания этих параметров можно настроить сводную таблицу в соответствии с требуемыми условиями. В дополнение к методу pivot_table(), в pandas также доступны другие методы для работы со сводными таблицами, такие как groupby() и agg().

Пример:

import pandas as pd

data = {‘Город’: [‘Москва’, ‘Санкт-Петербург’, ‘Москва’, ‘Санкт-Петербург’, ‘Москва’, ‘Санкт-Петербург’],

‘Год’: [‘2018’, ‘2018’, ‘2019’, ‘2019’, ‘2020’, ‘2020’],

‘Продажи’: [1000, 2000, 1500, 2500, 1800, 2200]}

df = pd.DataFrame(data)

pivot_table = df.pivot_table(values=’Продажи’, index=’Город’, columns=’Год’, aggfunc=’sum’)

print(pivot_table)

В данном примере мы создали сводную таблицу, которая группирует данные по городам и годам, а затем считает сумму продаж для каждой комбинации города и года.

Что такое сводная таблица и зачем она нужна

Сводная таблица — это удобный инструмент для анализа данных, который позволяет суммировать, группировать и агрегировать информацию. Она позволяет быстро и эффективно проводить различные операции над данными, а также визуализировать результаты.

Сводные таблицы особенно полезны при работе с большими объемами данных, так как они позволяют легко сгруппировать информацию по нескольким категориям одновременно. С их помощью можно анализировать тенденции, отслеживать изменения и исследовать взаимосвязи между различными переменными.

Основные преимущества сводных таблиц:

  • Удобство работы с данными. Сводные таблицы позволяют с легкостью создавать сводные столбцы и строки, применять различные агрегирующие функции (сумма, среднее, максимум, минимум и др.), а также фильтровать данные по определенным условиям.
  • Визуализация данных. Сводные таблицы удобно представлять в виде графиков и диаграмм, что помогает проанализировать взаимосвязи и сделать выводы.
  • Эффективность работы. Благодаря сводным таблицам можно значительно сократить время и упростить процесс анализа данных. Они позволяют быстро получать нужную информацию и проводить сравнительный анализ по различным категориям.

Сводные таблицы широко применяются в различных областях, включая маркетинг, бизнес-анализ, финансы, логистику и т.д. Они позволяют получить ценные инсайты и принимать обоснованные решения на основе данных.

Методы построения сводной таблицы в pandas

В библиотеке pandas есть несколько методов для построения сводной таблицы. Рассмотрим некоторые из них:

  • pandas.pivot_table() — этот метод позволяет создавать сводные таблицы на основе одной или нескольких колонок. Он группирует данные по значениям указанных колонок и вычисляет агрегатные функции (например, сумму, среднее, минимум, максимум) по другим колонкам.
  • pandas.crosstab() — данный метод позволяет создать кросс-таблицу, которая показывает распределение данных по двум переменным. Он подсчитывает количество вхождений каждой комбинации значений двух переменных.
  • pandas.pivot() — этот метод позволяет создавать сводные таблицы на основе указанных индекса и колонок. Он превращает длинные данные в широкий формат и объединяет их по указанным индексам и колонкам.

Для всех методов можно указать различные параметры, такие как агрегатные функции, значения, которые нужно отобразить в сводной таблице, а также значения по умолчанию, которые будут возвращены для отсутствующих значений.

Пример использования этих методов позволит лучше понять, как работают сводные таблицы в pandas и как обрабатывать данные с их помощью.

Примеры использования сводных таблиц в pandas

1. Расчет среднего значения и суммы по категориям

Одним из самых частых применений сводных таблиц в pandas является расчет среднего значения и суммы по категориям. Для этого используется метод pandas.pivot_table(). Например, мы можем создать сводную таблицу, которая показывает среднюю продолжительность жизни и общее население для разных стран:

import pandas as pd

data = {'Country': ['Russia', 'USA', 'China', 'India', 'Brazil'],

'Life Expectancy': [71.0, 79.0, 76.0, 68.5, 75.2],

'Population': [144.5, 327.2, 1402.0, 1371.3, 211.0]}

df = pd.DataFrame(data)

pivot_table = pd.pivot_table(df, values=['Life Expectancy', 'Population'], index='Country')

print(pivot_table)

В результате выполнения этого кода мы получим следующую сводную таблицу:

CountryLife ExpectancyPopulation
Brazil75.200000211.0
China76.0000001402.0
India68.5000001371.3
Russia71.000000144.5
USA79.000000327.2

2. Построение сводных таблиц с использованием дополнительных аргументов

Метод pandas.pivot_table() также позволяет использовать дополнительные аргументы, чтобы настроить создаваемую сводную таблицу. Например, мы можем указать столбцы, которые хотим использовать в качестве индекса и столбцы, которые хотим использовать для расчета:

import pandas as pd

data = {'Country': ['Russia', 'USA', 'China', 'India', 'Brazil'],

'Year': [2000, 2000, 2000, 2010, 2010],

'Life Expectancy': [71.0, 79.0, 76.0, 68.5, 75.2],

'Population': [144.5, 327.2, 1402.0, 1371.3, 211.0]}

df = pd.DataFrame(data)

pivot_table = pd.pivot_table(df, values='Life Expectancy', index=['Country', 'Year'], columns='Year', aggfunc='mean')

print(pivot_table)

В данном примере мы строим сводную таблицу, которая показывает среднюю продолжительность жизни по разным странам и годам:

CountryYear20002010
BrazilNaN75.2
China76.0NaN
IndiaNaN68.5
Russia71.0NaN
USA79.0NaN

3. Фильтрация данных при построении сводной таблицы

Метод pandas.pivot_table() также позволяет фильтровать данные при построении сводной таблицы. Например, мы можем выбрать только данные для определенного года и страны, а затем создать сводную таблицу на их основе:

import pandas as pd

data = {'Country': ['Russia', 'USA', 'China', 'India', 'Brazil'],

'Year': [2000, 2000, 2000, 2010, 2010],

'Life Expectancy': [71.0, 79.0, 76.0, 68.5, 75.2],

'Population': [144.5, 327.2, 1402.0, 1371.3, 211.0]}

df = pd.DataFrame(data)

filtered_data = df[(df['Country'] == 'Russia') & (df['Year'] == 2000)]

pivot_table = pd.pivot_table(filtered_data, values='Life Expectancy', index='Country', columns='Year', aggfunc='mean')

print(pivot_table)

В результате выполнения этого кода мы получим следующую сводную таблицу, содержащую среднюю продолжительность жизни для России в 2000 году:

Country2000
Russia71.0

Это лишь некоторые примеры использования сводных таблиц в pandas. Используя этот мощный инструмент, вы сможете легко анализировать и визуализировать большие объемы данных.

Вопрос-ответ

Как создать сводную таблицу в pandas?

Чтобы создать сводную таблицу в pandas, нужно использовать метод pivot_table(). Например: df.pivot_table(index=’столбец1′, columns=’столбец2′, values=’столбец3′)

Какие параметры можно указать при создании сводной таблицы в pandas?

При создании сводной таблицы в pandas можно указать следующие параметры: index — столбец, по которому будет группироваться таблица, columns — столбец, по которому будут создаваться колонки таблицы, values — столбец, значения которого будут использоваться для заполнения таблицы, aggfunc — функция, применяемая к значениям столбца values при группировке.

Как можно изменить агрегатную функцию при создании сводной таблицы в pandas?

По умолчанию, при создании сводной таблицы в pandas, используется среднее значение в качестве агрегатной функции. Однако, её можно изменить, задав параметр aggfunc при вызове метода pivot_table(). Например, df.pivot_table(index=’столбец1′, columns=’столбец2′, values=’столбец3′, aggfunc=’sum’)

Можно ли создать сводную таблицу, используя несколько агрегатных функций?

Да, можно создать сводную таблицу, используя несколько агрегатных функций. Для этого нужно передать список агрегатных функций в параметр aggfunc при вызове метода pivot_table(). Например, df.pivot_table(index=’столбец1′, columns=’столбец2′, values=’столбец3′, aggfunc=[‘sum’, ‘mean’])

Можно ли задать наименования строк и колонок в сводной таблице?

Да, можно задать наименования строк и колонок в сводной таблице. Для этого нужно добавить параметры margins_name и columns_name при вызове метода pivot_table(). Например, df.pivot_table(index=’столбец1′, columns=’столбец2′, values=’столбец3′, margins_name=’Итого’, columns_name=’Колонки’)

Как можно заполнить пропущенные значения в сводной таблице?

Если в сводной таблице есть пропущенные значения, то их можно заполнить с помощью параметра fill_value при вызове метода pivot_table(). Например, df.pivot_table(index=’столбец1′, columns=’столбец2′, values=’столбец3′, fill_value=0)

Оцените статью
uchet-jkh.ru