簡體   English   中英

Pandas groupby 將重復的行拆分為列

[英]Pandas groupby split repeated rows into columns

我有一個 dataframe 如下所示,我正在嘗試將重復的unique_id行拆分為新列。

unique_id Name     Description_col
001       Ram      description1
002       Kumar    description2
002       Gopal    description3
003       Dinesh   description4
004       Avi      description5
004       Sam      description6
004       Guru     description7

我正在嘗試通過按 unique_id 分組來拆分unique_id 如果重復唯一 ID,則應將Name, Description列添加為新列。

我預期的 output 是:

unique_id Name     Description_col     Name2    Description_col2   Name3     Description_col3
001       Ram      description1
002       Kumar    description2        Gopal    description3    
003       Dinesh   description4
004       Avi      description5        Sam      description6        Guru     description7

我們需要使用cumcount pivot附加密鑰

df['key'] = df.groupby('unique_id').cumcount().astype(str)
s=df.pivot_table(index='unique_id',columns='key',values=['Name','Description_col'],aggfunc='first').sort_index(level=1,axis=1)
s.columns=s.columns.map('_'.join)
s
Out[97]: 
          Description_col_0  Name_0  ... Description_col_2 Name_2
unique_id                            ...                         
1              description1     Ram  ...               NaN    NaN
2              description2   Kumar  ...               NaN    NaN
3              description4  Dinesh  ...               NaN    NaN
4              description5     Avi  ...      description7   Guru
[4 rows x 6 columns]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM