Pandas: как изменить форму DataFrame с длинного на широкий


Вы можете использовать следующий базовый синтаксис для преобразования кадра данных pandas из длинного формата в широкий формат:

df = pd.pivot(df, index='col1', columns='col2', values='col3')

В этом сценарии col1 станет индексом, col2 станет столбцами, а col3 будет использоваться в качестве значений внутри DataFrame.

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: изменение формы кадра данных Pandas с длинного на широкий

Предположим, у нас есть следующий pandas DataFrame в длинном формате:

import pandas as pd

#create DataFrame in long format
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
 'player': [1, 2, 3, 4, 1, 2, 3, 4],
 'points': [11, 8, 10, 6, 12, 5, 9, 4]})

#view DataFrame
df

 team player points
0 A 1 11
1 A 2 8
2 A 3 10
3 A 4 6
4 B 1 12
5 B 2 5
6 B 3 9
7 B 4 4

Мы можем использовать следующий синтаксис, чтобы преобразовать этот DataFrame из длинного формата в широкий формат:

#reshape DataFrame from long format to wide format
df = pd.pivot(df, index='team', columns='player', values='points')

#view updated DataFrame
df

player 1 2 3 4
team 
A 11 8 10 6
B 12 5 9 4

DataFrame теперь имеет широкий формат.

Мы использовали «команду» в качестве столбца индекса, «игрок» в качестве столбцов и «очки» в качестве значений внутри DataFrame.

Обратите внимание, что вместо этого мы могли бы использовать «игрок» в качестве столбца индекса и «команда» в качестве столбцов, если бы мы хотели:

#reshape DataFrame from long format to wide format
df = pd.pivot(df, index='player', columns='team', values='points')

#view updated DataFrame
df

team A B
player 
1 11 12
2 8 5
3 10 9
4 6 4

Этот DataFrame также имеет широкий формат.

Примечание.Вы можете найти полную документацию по функции Pandas pivot() здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в Python:

Pandas: как изменить форму DataFrame с широкого на длинный
Как добавить строки в Pandas DataFrame
Как добавить столбцы в Pandas DataFrame
Как подсчитать вхождения определенных значений в Pandas DataFrame

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.