根据条件组合熊猫行

时间:2019-06-20 10:22:51

标签: python pandas formatting

给出一个Pandas Dataframe df,其列名为“ Session”和“ List”:

我可以将“列表”值归为“会话”的相同值吗?

我的方法

我尝试通过创建一个新的数据框并在初始数据框的行中进行迭代来解决问题,同时维护会话计数器,如果我看到会话已更改,该计数器会增加。

如果它没有更改,那么我将与该行值相对应的List值附加一个逗号。

每次会话更改时,我都会使用strip去除最后一个逗号(多余)。

初始DataFrame

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

必需的DataFrame

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

有人可以提出更有效或更简单的建议吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

使用groupbyapplyreset_index

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