如何使用pandas分成两列?

我正在研究一个algorithm,它需要按两列进行分组。 pandas支持使用两列进行分组:

df.groupby([col1, col2]) 

但是结果dataframe不是必需的dataframe

工作设置:
Python: v3.5
pandas: v0.18.1

pandas数据框 – input数据:

  Type Segment id 1 Domestic 1 2 Salary 3 3 NRI 1 4 Salary 4 5 Salary 3 6 NRI 4 7 Salary 4 8 Salary 3 9 Salary 4 10 NRI 4 

所需数据框:每个细分市场[国内,薪资,NRI]的数量

  Domestic Salary NRI Segment 1 1 3 1 3 0 0 0 4 0 3 2 

实验:

 group = df.groupby(['Segment', 'Type']) group.size() Segment Type Count 1 Domestic 1 NRI 1 3 Salary 3 4 Salary 3 NRI 2 

我能够使用MS Excel数据透视表function实现所需的dataframe。 有没有办法,我可以用pandas取得类似的结果?

Groupby.size操作之后,创build一个需要转换为数据Groupby.sizemulti-index (2级索引) series对象,这可以通过unstacking第二级索引和可选地填充0获得的NaNs来完成。

 df.groupby(['Segment', 'Type']).size().unstack(level=1, fill_value=0) 

在这里输入图像说明