我有以下数据:
User Group
user1 G1
user1 G2
user1 G3
user1 G7
user2 G10
user2 G4
user2 G7
user2 G1
user2 G13
user3 G16
user3 G5
user3 G6
user4 G2
user4 G13
user4 G15
user4 G10
我想以以下格式准备相关数据:
G1 G2 G3 G4 G5 G6 G7 G10 G13 G15 G16
user1 1 1 1 0 0 0 1 0 0 0 0
user2 1 0 0 1 0 0 1 1 1 0 0
user3 0 0 0 0 1 1 0 0 1 0 1
user4 0 1 0 0 0 0 0 1 1 1 0
我试着分别转置每个用户,但这对我没有帮助。 有没有办法做这项工作,因为我有更大的数据。我知道它将创建一个解析矩阵,但这正是我想要创建的
您可以使用
pandas.crosstab
并传递索引和列参数如果希望列以预期输出中的排序方式显示,可以稍后在
crosstab
之后对列进行排序(对初始数据帧的Group
列进行排序也可以,但会影响性能):作为对另一个答案的补充,您可以使用自然排序与
natsort
:输出:
相关问题 更多 >
编程相关推荐