如何用给定的两列创建真/假表?

时间:2017-05-24 19:45:05

标签: python pandas

我有一个包含两列的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

我该怎么做?我试着把长桌抬得很宽,但似乎需要一个"值"但我没有。 非常感谢任何帮助!

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