Сводная или 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]
})
Таблица выглядит следующим образом:
Date | City | Temperature | Humidity | |
---|---|---|---|---|
0 | 2024-03-01 | Moscow | -3 | 80 |
1 | 2024-03-01 | Saint Petersburg | -2 | 85 |
2 | 2024-03-02 | Moscow | -1 | 75 |
3 | 2024-03-02 | Saint Petersburg | 0 | 70 |
4 | 2024-03-03 | Moscow | 1 | 65 |
Создадим pivot-таблицу, используя метод .pivot()
:
pivot = df.pivot(index='Date', columns='City')
В результате получим следующую таблицу:
City | Temperature | Humidity |
---|---|---|
Date | Moscow | Saint Petersburg |
2024-03-01 | -3 | -2 |
2024-03-02 | -1 | 0 |
2024-03-03 | 1 | NaN |
В этой таблице строки представляют даты, столбцы представляют города, а значения ячеек - температуру и влажность.
При работе с манипуляциями данными в 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-таблицы для своих задач обработки и анализа данных.