pandas合并近重复行求和后如何还原为普通二维表结构
解决方案
最优实现方案
直接在groupby方法中添加as_index=False参数即可,该参数会强制让分组键保留为普通数据列,不会被设置为结果的行索引:
df2 = df.groupby(["names", "subject"], as_index=False).agg({"count": "sum"}) # 如果需要和原始表的列顺序完全一致,可以补充以下代码调整列序 df2 = df2[["names", "count", "subject"]]
替代方案
如果你已经生成了带多级行索引的分组结果,也可以调用reset_index()方法将索引转换为普通列:
df2 = df.groupby(["names", "subject"]).agg({"count": "sum"}).reset_index()
参数说明
as_index=False:pandas的groupby默认会将所有分组列设为结果的行索引,设置该参数为False后就可以关闭这个特性,直接输出扁平化的普通表结构。reset_index():可以将DataFrame的行索引(包括多级索引)全部转换为普通数据列,同时重置索引为从0开始的默认整数序列。
内容的提问来源于stack exchange,提问作者Tarandeepsingh
相关产品推荐
相关产品推荐

