如何在pandas中按键分组转置数据框?

9

我有一张来自数据库的表格,我需要按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 

就像这样:

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

单元格是答案,列的格式为“P{问题编号}”。
我正在使用pandas 0.18.1。
我该如何做到这一点?

1
你需要 print (df.pivot(index='survey_id', columns='question_number', values='answer').add_prefix('P')) 吗? - jezrael
谢谢!快到了..但是我该如何将Survey_id添加为第一列呢?我尝试过堆叠,但不完全符合我的需求。最重要的是使用survey_id与另一个表进行合并。 - Murilo Azevedo
1个回答

18

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接