[英]Pandas groupby three columns and split column
我正在尝试按三列分组,并将它们聚合,以便列(而不是行)被第三组拆分。
我正在使用groupby
方法来获取按问题、学校和性别划分的 dataframe:
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'))
这是你想要df.pivot_table(index=['q3'], columns=['school', 'gender'], values=['value'])
这是我得到的 output
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
这是我使用的 dataframe:
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)})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.