如何使用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.size
的multi-index
(2级索引) series
对象,这可以通过unstacking
第二级索引和可选地填充0获得的NaNs
来完成。
df.groupby(['Segment', 'Type']).size().unstack(level=1, fill_value=0)