Pandas: как изменить форму dataframe с длинного на широкий
Вы можете использовать следующий базовый синтаксис для преобразования DataFrame pandas из длинного формата в широкий:
df = pd. pivot (df, index=' col1 ', columns=' col2 ', values=' col3 ')
В этом сценарии col1 станет индексом, col2 станет столбцами, а col3 будет использоваться в качестве значений внутри DataFrame.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: изменение формы фрейма данных Pandas с длинного на широкий
Предположим, у нас есть следующий DataFrame pandas в длинном формате:
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 to 1 11 1 to 2 8 2 to 3 10 3 to 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 с широкой на длинную
Как добавить строки в DataFrame Pandas
Как добавить столбцы в DataFrame Pandas
Как подсчитать появление определенных значений в Pandas DataFrame