Сводная или pivot таблицы в pandas

Прежде всего, нам необходимо импортировать библиотеку pandas:

import pandas as pd

Допустим, у нас есть следующий DataFrame:

df = pd.DataFrame({
    'Date': ['2024-03-01', '2024-03-01', '2024-03-02', '2024-03-02', '2024-03-03'],
    'City': ['Moscow', 'Saint Petersburg', 'Moscow', 'Saint Petersburg', 'Moscow'],
    'Temperature': [-3, -2, -1, 0, 1],
    'Humidity': [80, 85, 75, 70, 65]
})

Таблица выглядит следующим образом:

DateCityTemperatureHumidity
02024-03-01Moscow-380
12024-03-01Saint Petersburg-285
22024-03-02Moscow-175
32024-03-02Saint Petersburg070
42024-03-03Moscow165

Создадим pivot-таблицу, используя метод .pivot():

pivot = df.pivot(index='Date', columns='City')

В результате получим следующую таблицу:

CityTemperatureHumidity
DateMoscowSaint Petersburg
2024-03-01-3-2
2024-03-02-10
2024-03-031NaN

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

При работе с манипуляциями данными в Python с использованием библиотеки pandas важно понимать различия между функциями pivot и pivot_table.

Различия между pivot и pivot_table

Pivot:

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

Например:

df.pivot(index='Date', columns='City', values='Temperature')

Это создаст новый DataFrame с 'Date' в качестве индекса, 'City' в качестве столбцов и 'Temperature' в качестве значений.

pivot_table:

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

Например:

df.pivot_table(index='Date', columns='City', values='Temperature', aggfunc='mean')

Это создаст новый DataFrame с 'Date' в качестве индекса, 'City' в качестве столбцов и средними значениями 'Temperature' в качестве значений, обрабатывая любые дублирующиеся записи с помощью вычисления среднего.

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

Понимание различий между этими двумя функциями критически важно для эффективной манипуляции и анализа данных в Python с использованием pandas.

С помощью pivot-таблиц можно легко анализировать и сравнивать данные. Например, с помощью этой таблицы можно сравнить температуру и влажность в Москве и Санкт-Петербурге по датам.

Pivot-таблицы - это мощный инструмент для анализа данных в Python. С помощью библиотеки pandas вы можете легко создавать и использовать pivot-таблицы для своих задач обработки и анализа данных.