pandas.DataFrame.pivot
-
DataFrame.pivot(self, index=None, columns=None, values=None)[source] -
Возвращает переформатированную таблицу DataFrame, организованную по заданным значениям индекса и столбцов.
Переформатирует данные (создаёт «пивотную» таблицу) на основе значений столбцов. Использует уникальные значения из указанных
index/columnsдля формирования осей результирующей таблицы DataFrame. Эта функция не поддерживает агрегацию данных, несколько значений приведут к MultiIndex в столбцах. Более подробную информацию о переформатировании см. в Руководстве пользователя.Параметры: -
index : string or object, optional -
Столбец, используемый для создания индекса новой таблицы. Если None, используется существующий индекс.
-
columns : string or object -
Столбец, используемый для создания столбцов новой таблицы.
-
values : string, object or a list of the previous, optional -
Столбец(ы) для заполнения значений новой таблицы. Если не указан, используются все оставшиеся столбцы, и результат будет иметь иерархически индексированные столбцы.
Изменено в версии 0.23.0: Также принимает список имён столбцов.
Возвращает: - DataFrame
-
Возвращает переформатированную таблицу DataFrame.
Исключения: - ValueError:
-
Если есть какие-либо
index,columnsкомбинации с несколькими значениями.DataFrame.pivot_tableв случае необходимости агрегации.
См. также
-
DataFrame.pivot_table - Обобщение pivot, которое может обрабатывать дублирующие значения для одной пары индекс/столбец.
-
DataFrame.unstack - Пивотная таблица на основе значений индекса вместо столбца.
Примечания
Для более тонкого управления см. документацию по иерархической индексации вместе со связанными методами stack/unstack.
Примеры
>>> df = pd.DataFrame({'foo': ['one', 'one', 'one', 'two', 'two', ... 'two'], ... 'bar': ['A', 'B', 'C', 'A', 'B', 'C'], ... 'baz': [1, 2, 3, 4, 5, 6], ... 'zoo': ['x', 'y', 'z', 'q', 'w', 't']}) >>> df foo bar baz zoo 0 one A 1 x 1 one B 2 y 2 one C 3 z 3 two A 4 q 4 two B 5 w 5 two C 6 t>>> df.pivot(index='foo', columns='bar', values='baz') bar A B C foo one 1 2 3 two 4 5 6
>>> df.pivot(index='foo', columns='bar')['baz'] bar A B C foo one 1 2 3 two 4 5 6
>>> df.pivot(index='foo', columns='bar', values=['baz', 'zoo']) baz zoo bar A B C A B C foo one 1 2 3 x y z two 4 5 6 q w tЕсли есть дубликаты, возникает ValueError.
>>> df = pd.DataFrame({"foo": ['one', 'one', 'two', 'two'], ... "bar": ['A', 'A', 'B', 'C'], ... "baz": [1, 2, 3, 4]}) >>> df foo bar baz 0 one A 1 1 one A 2 2 two B 3 3 two C 4Обратите внимание, что первые две строки одинаковы для наших
indexиcolumnsаргументов.>>> df.pivot(index='foo', columns='bar', values='baz') Traceback (most recent call last): ... ValueError: Index contains duplicate entries, cannot reshape
-
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.25.0/reference/api/pandas.DataFrame.pivot.html