如何从pandas中的一个groupby操作创建多个列,而不必多次对数据帧进行分组?

2024-04-20 12:12:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个表,我在格式化的地址字符串的文本列上分组,因此分组操作需要花费大量的时间来完成。然后,我在原始的未分组数据框中创建了两列,其中的值是从应用于groupby组的函数中获得的。一列是唯一的重复ID,用于标识未分组表中的相同分组行,另一列包含组中由逗号分隔的所有行ID。代码如下所示:

 streetformattable['Duplicate_ID'] = streetformattable.groupby('STREETREFORMAT', sort=False).grouper.group_info[0] + DupeID_Increment
    
streetformattable['LinkedIDs'] = streetformattable.groupby('STREETREFORMAT')['ID'].transform(lambda x: ','.join(x))

注意:我一直在使用Pandas 0.18.1,因此我必须使用上述解决方法来获得每个组的递增唯一ID

在这个脚本中有许多要分组的表,每个表都需要这两列。是否有一种方法可以只执行一个分组操作并创建两个列


Tags: 数据方法函数字符串代码文本id地址