原始 df:df=pd.DataFrame({'name':['id1','id1','id2','id2','id2'], 'attr1':['a','b','c','d','e']}) Out[45]: name attr10 id1 a1 id1 b2 id2 c3 id2 d4 id2 e我想要的是:系統需要更多詳細信息,但我無話可說,所以請不要在這里查看這些文字,這會浪費您的時間。
2 回答

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
讓我們嘗試cumcount使用附加鍵進行分配
s = df.assign(key=df.groupby('name').cumcount()+1).pivot('name','key','attr1')
s
Out[125]:
key 1 2 3
name
id1 a b NaN
id2 c d e

慕神8447489
TA貢獻1780條經驗 獲得超1個贊
做就是了
按列分組
添加 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 2
name
id1 a b None
id2 c d e
添加回答
舉報
0/150
提交
取消