熊猫:groupby和聚合,而不会丢失被分组的列

物理:

我有一个熊猫数据框,如下所示。对于每个ID,我可以有多个名称和子ID。

Id      NAME   SUB_ID
276956  A      5933
276956  B      5934
276956  C      5935
287266  D      1589

我想压缩数据框,以便每个id只有一行,并且每个id下的所有名称和sub_ids在该行上都显示为单数形式

Id      NAME           SUB_ID
276956  set(A,B,C)     set(5933,5934,5935)
287266  set(D)         set(1589) 

我尝试对ID进行分组,然后汇总所有其他列

df.groupby('Id').agg(lambda x: set(x))

但是这样做时,结果数据框没有Id列。当您执行groupby时,id将作为元组的第一个值返回,但是我想您聚合时会丢失。有没有一种方法来获取我要寻找的数据框。那就是分组和聚集而不丢失被分组的列。

臀部:

如果您不希望groupby作为索引,可以使用一个参数来避免进一步重置:

df.groupby('Id', as_index=False).agg(lambda x: set(x))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章