基于条件合并pandas行

3
给定一个 Pandas 数据框 df,其中包含列名 'Session' 和 'List':
我能否将相同 'Session' 值的 'List' 值分组在一起?
我的方法:
我尝试通过创建一个新数据框来解决这个问题,并在保持会话计数器的同时遍历初始数据框的行,如果看到会话已更改,则将其递增。
如果没有更改,则将与该行值对应的 List 值附加一个逗号。
每当会话更改时,我使用 strip 去除最后一个逗号(多余)。
初始数据框:
   Session  List  
0     1      a    
1     1      b    
2     1      c     
3     2      d     
4     2      e    
5     3      f     

需要的数据框

   Session  List  
0     1      a,b,c   
1     2      d,e  
2     3      f     

有没有更加高效简单的建议?

提前感谢您的回复。

1个回答

5
使用groupbyapplyreset_index
>>> df.groupby('Session')['List'].agg(','.join).reset_index()
   Session   List
0        1  a,b,c
1        2    d,e
2        3      f
>>> 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接