如何在特定行上对pandas dataframe进行旋转

2024-04-25 17:24:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

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名的基础上,另一列给出了一个排名如何相关的产品


Tags: 数据dataframedf产品配方recipeproduct基础
1条回答
网友
1楼 · 发布于 2024-04-25 17:24:56

这实际上是一个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

相关问题 更多 >