将 Pandas DataFrame 行重组为列

我有以下 df:


itemname participant s0  s1  s2  s3

E1       1           no  no  no  yes

E1       2           no  no  yes no

E1       3           no  no  no  yes

A1       1           no  no  no  yes

A1       2           no  no  no  yes

A1       3           yes no  no  no

Foo      1           no  no  no  yes

Foo      2           yes no  no  no

Foo      3           no  yes yes yes

我需要将其转换为以下格式:


itemname  participant_1  participant_2  participant_3 

E1_s0     no             no             no 

E1_s1     no             no             no 

E1_s2     no             yes            no 

E1_s3     yes            no             yes 

A1_s0     no             no             yes 

A1_s1     no             no             no 

A1_s2     no             no             no 

A1_s3     yes            yes            no 

Foo_s0    no             yes            no      

Foo_s1    no             no             yes

Foo_s2    no             no             yes

Foo_s3    yes            no             yes

如何将每个项目名称与s0、s1、s2和s3组合成行,同时区分参与者(每个参与者应成为单独的列)?


慕无忌1623718
浏览 115回答 1
1回答

慕神8447489

您可以尝试以下操作:>>> df.pivot(         columns='itemname',index='participant').T         .swaplevel(axis='index')         .sort_index(0).reset_index()         .assign(itemname=lambda x:(x.pop('itemname')+'_' + x.pop('level_1'))       ).set_index('itemname').add_prefix('participant_')participant participant_1 participant_2 participant_3itemname                                             A1_s0                  no            no           yesA1_s1                  no            no            noA1_s2                  no            no            noA1_s3                 yes           yes            noE1_s0                  no            no            noE1_s1                  no            no            noE1_s2                  no           yes            noE1_s3                 yes            no           yesFoo_s0                 no           yes            noFoo_s1                 no            no           yesFoo_s2                 no            no           yesFoo_s3                yes            no           yes
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python