我有一个包含两列的pandas数据框:
group user
group 1 user A
group 1 user B
group 1 user C
group 2 user B
group 2 user C
现在我想把它变成一张宽桌子。基本上有一个1/0值来指示用户是否属于一个组,期望的结果应该是什么样的(或者将用户作为行和组作为列):
User A User B User C User D
group 1 1 1 1 0
group 2 0 1 0 1
我该怎么做?我试着把长桌抬得很宽,但似乎需要一个"值"但我没有。 非常感谢任何帮助!
答案 0 :(得分:1)
df.set_index('group')['user'].str.get_dummies().groupby(level=0).sum()
输出:
user A user B user C
group
group 1 1 1 1
group 2 0 1 1
df.groupby(['group','user'])['user'].count().unstack()
输出:
user user A user B user C
group
group 1 1.0 1.0 1.0
group 2 NaN 1.0 1.0