我有一个如下的pandas数据框。对于每个'Id',我可以有多个'Names'和'Sub-ids'。
我想压缩数据框,使得每个'Id'只有一行,并且每个'Id'下的所有'names'和'sub_ids'都出现在同一行上,作为一个集合。
我尝试按'Id'进行分组,然后对所有其他列进行聚合:
但是这样做的话,生成的数据框没有'Id'列。当你使用groupby时,'Id'作为元组的第一个值返回,但我猜当你进行聚合操作时,它就丢失了。有没有办法得到我想要的数据框:即进行分组和聚合操作,同时不丢失被分组的列。
Id NAME SUB_ID
276956 A 5933
276956 B 5934
276956 C 5935
287266 D 1589
我想压缩数据框,使得每个'Id'只有一行,并且每个'Id'下的所有'names'和'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'作为元组的第一个值返回,但我猜当你进行聚合操作时,它就丢失了。有没有办法得到我想要的数据框:即进行分组和聚合操作,同时不丢失被分组的列。