Метод pivot
Метод pivot применяется к DataFrame
и выполняет перестройку таблицы на основе трех столбцов:
индекс, столбцы и значения. Этот метод полезен для создания
сводных таблиц, когда нужно представить данные в более
читаемом виде. Первым параметром передается столбец,
значения которого станут новым индексом, вторым - столбец,
значения которого станут новыми колонками, а третьим -
столбец со значениями для заполнения ячеек.
Синтаксис
df.pivot(index=None, columns=None, values=None)
Пример
Давайте создадим таблицу с данными о продажах и применим метод pivot:
import pandas as pd
df = pd.DataFrame({
'date': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'],
'city': ['Moscow', 'SPb', 'Moscow', 'SPb'],
'sales': [100, 150, 200, 250]
})
res = df.pivot(index='date', columns='city', values='sales')
print(res)
Результат выполнения кода:
city Moscow SPb
date
2023-01-01 100 150
2023-01-02 200 250
Пример
Если нужно использовать несколько столбцов для значений, можно не указывать параметр values:
import pandas as pd
df = pd.DataFrame({
'date': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'],
'city': ['Moscow', 'SPb', 'Moscow', 'SPb'],
'sales': [100, 150, 200, 250],
'profit': [10, 15, 20, 25]
})
res = df.pivot(index='date', columns='city')
print(res)
Результат выполнения кода:
sales profit
city Moscow SPb Moscow SPb
date
2023-01-01 100 150 10 15
2023-01-02 200 250 20 25
Пример
Если в данных есть повторяющиеся комбинации индекса и столбцов, метод pivot выдаст ошибку. В таком случае нужно использовать метод pivot_table:
import pandas as pd
df = pd.DataFrame({
'date': ['2023-01-01', '2023-01-01', '2023-01-01'],
'city': ['Moscow', 'Moscow', 'SPb'],
'sales': [100, 150, 200]
})
res = df.pivot(index='date', columns='city', values='sales')
print(res)
Результат выполнения кода:
city Moscow SPb
date
2023-01-01 150 200.0
Смотрите также
-
метод
pivot_table,
который строит сводную таблицу с агрегацией -
метод
melt,
который преобразует широкий формат в длинный -
метод
stack,
который сжимает таблицу в многоуровневый индекс -
метод
unstack,
который разворачивает многоуровневый индекс в столбцы