熊猫groupby三列和拆分列

时间:2020-04-09 20:42:04

标签: python pandas group-by

我正在尝试按三列进行分组,并对它们进行汇总,以使列(而非行)被第三组分开。

我正在使用groupby方法来获取按问题,学校和性别划分的数据框:

df.groupby([question, 'SCHOOL', 'GENDER']).size().unstack()

The table I am getting

但是,我没有以SCHOOL分隔行,而是尝试以SCHOOL作为列,并以GENDER分隔行。因此,我希望将'Q3.1作为索引,将SCHOOL作为索引,但是SCHOOL列也将被GENDER分隔。

基本上,这些列将是以下内容:

(('Middle School', 'Female'),
 ('Middle School', 'Male'),
 ('High School', 'Female'),
 ('High School', 'Male'))

1 个答案:

答案 0 :(得分:0)

这就是您想要的df.pivot_table(index=['q3'], columns=['school', 'gender'], values=['value'])

这是我得到的输出

value
school  highschool  middleschool
gender  female  male    female  male
q3              
breakoff    15  1   16  2
excellent   17  3   18  4
fair    19  5   20  6
good    21  7   22  8
missing 23  9   24  10
poor    25  11  26  12
verygood    27  13  28  14

这是我使用的数据框:

df=pd.DataFrame({'gender': ['male']*14+['female']*14, 'school':['highschool','middleschool']*14,'q3': ['breakoff','breakoff'
,'excellent','excellent','fair','fair','good','good','missing','missing','poor','poor','verygood',
'verygood','breakoff','breakoff','excellent','excellent','fair','fair','good','good','missing','missing','poor','poor',
'verygood','verygood'], 'value': np.arange(1,29)})