根据所选列旋转pandas数据帧

时间:2018-06-08 09:50:41

标签: python pandas

数据架如何

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 :(得分:2)

您可以使用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

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