如何根据另一列的group by组合多列和多行



我试图将多列和行组合成基于ID列字段组的单列。输入为

|Id |   Sample_id | Sample_name |   Sample_number|
|:--|:------------|:-----------:|---------------:|             
|1  |  123        | Abcdef|ghij |  1234567       |
|1  |   345       | Vbnhj|tt|t  |   45678        |
|1  |   456       | Ffff|yyy|yy |   789000       |

期望输出:属于相同Id的列、行应组合并形成如下列表

Id  Sample_details              
123,Abcdef|ghij,1234567
1  345,Vbnhj|tt|t, 45678       
456 ,Ffff|yyy|yy,789000
2   536 ,Ftff|uyy|iy,79000
453, hnhj|tdd|rr, 67678 

我在下面试了试,但不工作

df.groupby('Id')['Sample_id']['Sample_name']['Sample_number'].apply(','.join).reset_index()

尝试:

df['Sample_details'] = df.filter(like='Sample_').astype(str).apply(','.join, axis=1)
out = df.groupby('Id')['Sample_details'].apply('n'.join).reset_index()

输出:

>>> out
Id                                     Sample_details
0   1  123,Abcdef|ghij,1234567n345,Vbnhj|tt|t,45678...

注意:Pandas不解释转义序列。

相关内容

  • 没有找到相关文章