我正在尝试按三列进行分组,并对它们进行汇总,以使列(而非行)被第三组分开。
我正在使用groupby
方法来获取按问题,学校和性别划分的数据框:
df.groupby([question, 'SCHOOL', 'GENDER']).size().unstack()
但是,我没有以SCHOOL
分隔行,而是尝试以SCHOOL
作为列,并以GENDER
分隔行。因此,我希望将'Q3.1
作为索引,将SCHOOL
作为索引,但是SCHOOL
列也将被GENDER
分隔。
基本上,这些列将是以下内容:
(('Middle School', 'Female'),
('Middle School', 'Male'),
('High School', 'Female'),
('High School', 'Male'))
答案 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)})