Как преобразовать кадр данных
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
?
Вы можете использовать df.pivot:
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:
pivot_table
count
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