我试图将多列和行组合成基于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不解释转义序列。