Pandas分组聚合后丢失分组列,如何保留该列?
解决Pandas分组后保留分组键列的问题
当你用groupby按lga_abbreviated_name分组聚合时,这个字段默认会变成结果DataFrame的索引,而非普通列,所以在dg.dtypes里看不到它。要同时保留该字段和聚合列,有两种简单方法:
方法1:分组时指定as_index=False
在groupby中添加as_index=False参数,让分组键直接作为结果的列存在:
dg = glob_df.groupby('lga_abbreviated_name', as_index=False).aggregate({'counts':'sum'})
执行后dg会同时包含lga_abbreviated_name和counts两列,可通过dg.dtypes验证。
方法2:对已生成的结果重置索引
如果已经得到了不带分组键列的dg,可以用reset_index()把索引转换为普通列:
dg = dg.reset_index()
这会把原来的索引lga_abbreviated_name转为列,同时生成默认的整数索引。
补充说明:你可以通过dg.index查看原来的分组键索引,它其实一直存在,只是未作为列显示而已。
内容的提问来源于stack exchange,提问作者Mah_Bar
相关产品推荐
相关产品推荐

