如何在特定行上旋转熊猫数据框

时间:2019-01-30 20:51:02

标签: python pandas

我有以下数据框:

df = pd.DataFrame({'recipe': ['a', 'a', 'a', 'a', 'a','a', 'b', 'b', 'b', 'b', 'b','b'],
                   'product': ['A', 'B', 'C', 'D', 'E', 'F', 'A', 'B', 'G', 'I', 'K', 'F']})

我想将输出的数据框旋转为每个配方有一行,每种产品有多列,例如:

recipe  p1  p2  p3  p4  p5  p6
a       A   B   C   D   E   F
b       A   B   G   I   K   F

另外,有多种产品,但是我希望排名前6位的商品能根据产品的相关性进行排名

1 个答案:

答案 0 :(得分:4)

这实际上是一个groupbyunnesting问题。

u = df.groupby('recipe')['product'].apply(list)
pd.DataFrame(u.tolist(), index=u.index).rename(lambda x: 'p{}'.format(x+1), axis=1)

       p1 p2 p3 p4 p5 p6
recipe                  
a       A  B  C  D  E  F
b       A  B  G  I  K  F