Python pandas 如何将 df :列值转置为行值?

原始 df:


df=pd.DataFrame({'name':['id1','id1','id2','id2','id2'],

             'attr1':['a','b','c','d','e']})

    Out[45]: 

  name attr1

0  id1     a

1  id1     b

2  id2     c

3  id2     d

4  id2     e

我想要的是:

http://img.mukewang.com/649a6f1f00014e7c04100080.jpg

系统需要更多详细信息,但我无话可说,所以请不要在这里查看这些文字,这会浪费您的时间。



HUH函数
浏览 149回答 2
2回答

明月笑刀无情

让我们尝试cumcount使用附加键进行分配s = df.assign(key=df.groupby('name').cumcount()+1).pivot('name','key','attr1')sOut[125]: key   1  2    3name           id1   a  b  NaNid2   c  d    e

慕神8447489

做就是了按列分组添加 lambda 聚合函数拆分为列。df.groupby('name') .agg(lambda x: '|'.join(x)) .attr1.str.split('|',expand=True)将以上三者结合起来>> df.groupby('name').agg(lambda x: '|'.join(x)).attr1.str.split('|',expand=True)      0  1     2name            id1   a  b  Noneid2   c  d     e
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python