大熊猫从重复模式向长模式转换为宽模式

时间:2018-07-07 15:38:36

标签: python-3.x pandas pivot pivot-table

我有一个熊猫df,其col1中的属性名称和col2中的属性值。我想:

  1. 将col1中的所有唯一行透视到df中的列
  2. 将col2中的相应值分配给行

pivot不起作用,因为值重复。

pivot_table不起作用,因为aggfunc仅返回均值等,而我需要将所有行都旋转。

我在meltunstack上没有获得成功。

原始df:

col1    col2
attr1   2
attr2   6
attr3   3
...     ...
attr1   9
attr2   2
attr3   5

所需的输出:

attr1    attr2    attr3
2        6        3
9        2        5 

1 个答案:

答案 0 :(得分:2)

set_indexgroupbycumcountunstack一起使用:

df.set_index([df.groupby('col1').cumcount(),'col1'])['col2'].unstack()

输出:

col1 attr1 attr2 attr3
0        2     6     3
1        9     2     5