Pandas:无需转置将多索引DataFrame分组聚合为逗号拼接的单行数据
你可以直接基于当前的多级索引做分组聚合,不需要转置操作,代码如下:
# 如果你已经提前按time排序完成,直接执行分组聚合即可 result = df.groupby(level=["id", "vid"])["pid"].agg(lambda x: ", ".join(x.astype(str))).to_frame()
说明
groupby(level=["id", "vid"])直接指定按多级索引的id、vid层级分组,不需要做额外的结构转换,计算资源消耗很低- 聚合逻辑里加了
astype(str)是兼容pid为非字符串类型的场景,如果你的pid本身就是字符串,可以简化为agg(', '.join) - 最终调用
to_frame()是为了和你预期的输出结构保持一致,得到列名为pid的DataFrame
内容的提问来源于stack exchange,提问作者S44
相关产品推荐
相关产品推荐

