首页 > 解决方案 > 使用 groupby pandas 按列排序

问题描述

我有这个数据框: 在此处输入图像描述

有一列“CD”有城市名称,一列“FAC18”是每行代表的人数。我有一列“S3P1”,它是学术级别,是 int 类型。当我将它按“CD”分组时,hab_ciudad = cuestio.groupby('CD')["FAC18"].sum()我得到:

在此处输入图像描述

我总结了“FAC18”。现在,我还想按学术水平(“S3P1”)分组。我希望它看起来像这样:

在此处输入图像描述

其中列是“S3P1”的值,总和是通过“FAC18”得出的。我试过这段代码:test = cuestio.groupby(['CD','S3P1'])["FAC18"].sum()

但我明白了:

在此处输入图像描述

获得我想要的表格的语法是什么?

标签: pythonpandas

解决方案


在你的 groupby 之后,你需要使用 pivot:

test = cuestio.groupby(['CD','S3P1'])["FAC18"].sum()
test = test.pivot(index='CD', columns='S3P1', values='FAC18')

推荐阅读