使用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
谢谢。
答案 0 :(得分:3)
使用GroupBy.cumcount
进行计数,然后用DataFrame.set_index
用Series.unstack
整形,最后用MultiIndex
用map
展平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')