首页 > 解决方案 > 如何分组数据框并将列用作值

问题描述

使用 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

谢谢。

标签: pythonpandas

解决方案


用于GroupBy.cumcount计数器,然后用 DataFrame.set_indexwith重塑Series.unstack,最后MultiIndexmapwith展平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

推荐阅读