【发布时间】:2017-01-19 08:52:56
【问题描述】:
我有一个如下的熊猫数据框。对于每个 ID,我可以有多个名称和子 ID。
Id NAME SUB_ID
276956 A 5933
276956 B 5934
276956 C 5935
287266 D 1589
我想压缩数据框,使每个 id 只有一行,并且每个 id 下的所有名称和 sub_id 在该行上显示为单个集合
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和aggregation不会丢失被分组的列。
【问题讨论】:
-
请注意,将非标量对象存储在 Series 和 DataFrames 中的支持有限,并且可能导致意外结果。
标签: python pandas dataframe group-by