2016-08-23 69 views
0

我有我的数据库这个表,我需要一个转按survey_id如何通过pandas上的键转换数据帧组?

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 

像这样:

Survey P01 P02 P03 P04 P05 
69  1 1 2 2 1 

细胞就是答案和列格式“P {QUESTION_NUMBER}”

我正在使用熊猫0.18.1。

我该怎么做?

+1

你需要'打印(df.pivot(指数= 'survey_id',列= 'QUESTION_NUMBER',值= '答案')add_prefix(。 'P'))'? – jezrael

+0

谢谢!几乎在那里..但我怎么能添加一个Survey_id作为第一列?我试图堆叠,但并不完全是我需要的。最重要的是它使用survey_id与另一个表合并。 –

回答

4

您可以使用pivotadd_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