如何在pandas上按密钥转置数据帧组?

Mur*_*edo 2 python analytics dataframe pandas

我从我的数据库中有这个表,我需要一个通过survey_id的转置组

id  answer  survey_id   question_number questionid 
216     0.0         69               3         2.0   
217     3.0         69               4         3.0   
218     0.0         69               5         4.0   
219     0.0         69               6         5.0   
221     0.0         69               8         7.0 
Run Code Online (Sandbox Code Playgroud)

像这样:

Survey P01  P02 P03 P04 P05
69     1    1   2   2   1
Run Code Online (Sandbox Code Playgroud)

单元格是答案,列格式为"P {question_number}"

我正在使用熊猫0.18.1.

我怎样才能做到这一点?

jez*_*ael 9

你可以使用pivot,add_prefixreset_index:

print (df.pivot(index='survey_id', columns='question_number', values='answer')
         .add_prefix('P')
         .reset_index())

question_number  survey_id   P3   P4   P5   P6   P8
0                       69  0.0  3.0  0.0  0.0  0.0
Run Code Online (Sandbox Code Playgroud)