繁体   English   中英

Pandas 分组三列分列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM