【问题标题】:Combining pandas rows based on condition [duplicate]根据条件组合熊猫行[重复]
【发布时间】:2019-11-03 03:40:10
【问题描述】:

给定一个 Pandas Dataframe df,列名为“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     

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

提前谢谢你。

【问题讨论】:

    标签: python pandas formatting


    【解决方案1】:

    使用groupbyapplyreset_index

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

    【讨论】:

      猜你喜欢
      • 2020-04-05
      • 2019-04-19
      • 2016-12-25
      • 2017-10-04
      • 2018-10-26
      • 2022-01-25
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      相关资源
      最近更新 更多