如何按数据框分组并使用列作为值

时间:2019-04-25 09:24:11

标签: python pandas

使用python熊猫。

我的数据表是这样的:

userid    roomid    true
 a         A         1   
 a         B         1
 b         C         0
 b         D         1 

我想要的是:

userid    roomid1   roomid2   true1  true2
 a         A         B        1      1   
 b         C         D        0      1

谢谢。

2 个答案:

答案 0 :(得分:3)

使用GroupBy.cumcount进行计数,然后用DataFrame.set_indexSeries.unstack整形,最后用MultiIndexmap展平join

df1 = (df.set_index(['userid', df.groupby(['userid']).cumcount().add(1).astype(str)])
        .unstack())
df1.columns = df1.columns.map(''.join)
df1 = df1.reset_index()
print (df1)
  userid roomid1 roomid2  true1  true2
0      a       A       B      1      1
1      b       C       D      0      1

答案 1 :(得分:0)

您首先需要按要分组的列进行分组。看来您想分组userid之后,我不确定您要实现的目标。您需要说明所需的最终结果,而不是计划如何实现的结果。检查XY promblem,然后正确提出问题

df.groupby('userid')