将单词和权重的列转换为稀疏矩阵

时间:2019-01-11 20:30:41

标签: python pandas sparse-matrix

我有一个如下表:

DocumentId Words Weight

1   alpha   2.5
1   beta    4.7
1   gamma   3
2   beta    8
2   gamma   2
3   alpha   5
4   apha    2
4   gamma   6

我希望它将其转换为

DocumentId  alpha   beta   gamma
       1       2.5  4.7    3
       2       0    8      2
       3       5    0      0
       4       2    0      6

问题是我大约有600万个独特单词和700万个文档。

有没有一种有效的方法来转换它?

1 个答案:

答案 0 :(得分:0)

只需要自己做。正确的术语是从纵向格式转换为宽格式。您将要使用df.pivot()。基于要减少的列和所需的新列标题,代码将为

df.pivot(index = 'DocumentId', columns = 'Words')
df.fillna(0)