РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
350 of 687 menu

Функция pivot

Функция pivot применяется к DataFrame и выполняет поворот таблицы, преобразуя данные из длинного формата в широкий. Первым параметром передаётся столбец с индексами, вторым - столбец со значениями для колонок, третьим - столбец со значениями для заполнения ячеек.

Синтаксис

pd.pivot(df, index, columns, values)

Параметры

Функция pivot принимает следующие параметры:

  • index - столбец, который станет индексом в новой таблице
  • columns - столбец, который станет колонками в новой таблице
  • values - столбец со значениями для заполнения ячеек

Пример

Давайте создадим таблицу в длинном формате и выполним поворот:

import pandas as pd df = pd.DataFrame({ 'user': ['a', 'a', 'b', 'b'], 'year': [2020, 2021, 2020, 2021], 'value': [100, 200, 300, 400] }) res = pd.pivot(df, index='user', columns='year', values='value') print(res)

Результат выполнения кода:

year 2020 2021 user a 100 200 b 300 400

Пример

Теперь давайте выполним поворот с несколькими столбцами значений:

import pandas as pd df = pd.DataFrame({ 'user': ['a', 'a', 'b', 'b'], 'year': [2020, 2021, 2020, 2021], 'value1': [10, 20, 30, 40], 'value2': [100, 200, 300, 400] }) res = pd.pivot(df, index='user', columns='year', values=['value1', 'value2']) print(res)

Результат выполнения кода:

value1 value2 year 2020 2021 2020 2021 user a 10 20 100 200 b 30 40 300 400

Пример

Рассмотрим случай, когда индексы повторяются:

import pandas as pd df = pd.DataFrame({ 'user': ['a', 'a', 'a', 'b'], 'year': [2020, 2020, 2021, 2021], 'value': [10, 20, 30, 40] }) try: res = pd.pivot(df, index='user', columns='year', values='value') print(res) except ValueError as e: print(e)

Результат выполнения кода:

"Index contains duplicate entries, cannot reshape"

Смотрите также

  • функция pivot_table,
    которая выполняет поворот с агрегацией
  • функция melt,
    которая преобразует таблицу из широкого формата в длинный
  • функция crosstab,
    которая строит таблицу пересечений
  • функция wide_to_long,
    которая преобразует широкий формат в длинный
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить