Сводный кадр данных pandas на основе выбранного столбца - PullRequest
0 голосов
/ 08 июня 2018

Как преобразовать кадр данных

df = pd.DataFrame({'car':['BMW','BMW','VW','VW'],'color':['red','blue','red','blue'],'count':[1,2,4,8]})
df

    car    color  count
0   BMW     red     1
1   BMW     blue    2
2   VW      red     4
3   VW      blue    8

в

    car     red    blue
0   BMW      1      2
1   VW       4      8

?

1 Ответ

0 голосов
/ 08 июня 2018

Вы можете использовать df.pivot:

In [9]: df.pivot(index='car', columns='color', values='count').reset_index()
Out[9]: 
color  car  blue  red
0      BMW     2    1
1       VW     8    4

Если имеется несколько строк с одинаковой комбинацией (автомобиль, цвет), используйте pivot_table чтобы указать, как вы хотите агрегировать count s:

In [7]: df.pivot_table(index='car', columns='color', values='count', aggfunc='sum').reset_index()
Out[7]: 
color  car  blue  red
0      BMW     2    1
1       VW     8    4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...