原始資料:
ID.               項目
0101          abc
0101          egg
0101          ggg
0102          uuu
0102          oooo
想呈現方式變成:
ID             項目1       項目2      項目3
0101         abc              egg        ggg
0102         uuu             oooo
試了怎麼轉也轉不出想呈現的結果
import pandas as pd
df = pd.read_clipboard()
df
cilpboard資料如下:
ID.	項目
0	101	abc
1	101	egg
2	101	ggg
3	102	uuu
4	102	oooo
res = pd.DataFrame()
for i in df['ID.'].unique():
    # 先將每一個ID項目篩選出來後轉置,再轉成list
    tempitems = (df[df['ID.']==i].T.loc['項目'].tolist())
    # 創建欄位名稱
    tempcols = [('項目')+str(x) for x in range(1, len(tempitems)+1)]
    # 將上面2項資料轉成dict
    tempdict = {tempcols[x] :tempitems[x] for x in range(len(tempitems))}
    # 將dict做成df
    tempdf = pd.DataFrame(tempdict, index=[0])
    # 把ID插入到第1欄
    tempdf.insert(loc=0, column='ID', value=i)
    # 將迴圈內的資料串接起來
    res = pd.concat([res, tempdf]).reset_index(drop=True)
res

因為資料懶的編輯,所以用官網範例,自己改成自己的資料。
import pandas as pd
df = pd.DataFrame({'Animal': ['Falcon', 'Falcon',
                              'Parrot', 'Parrot', 'Parrot'],
                   'Max Speed': [380., 370., 24., 26., 28.]})
groups = df.groupby(['Animal'])
result = []
for g in groups.groups:
  tempdf = groups.get_group(g)
  temp = pd.concat([pd.Series([g]), tempdf['Max Speed']])
  columns = ['Animal'] + [f'Max Speed {i}' for i in range(1, len(tempdf['Max Speed'])+1)]
  tempdf = pd.DataFrame(temp).T
  tempdf.columns = columns
  result.append(tempdf)
print(pd.concat(result))