将包含行名、列名和频率的文档转换为术语文档矩阵

2024-09-28 05:18:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下格式的文件: 输入:

 Freq Document  TermId
  3     A      112
  5     A      055
  1     C      003
  4     D      001
  2     B      003
  1     D      089

我想把这个dataframe转换成一个term文档矩阵(最好是另一个df)。实现这一目标最有效的方法是什么?你知道吗

Ex输出:

Term/Document  A  B  C  D
    001        0  0  0  4
    003        0  2  1  0
    055        5  0  0  0
    089        0  0  0  1
    112        3  0  0  0

Tags: 文件方法文档目标dataframedf格式矩阵
1条回答
网友
1楼 · 发布于 2024-09-28 05:18:17

注意,所需的DataFrame有一个索引,其标签来自df['TermId'],列标签来自df['Document']。每当索引和列标签来自df的列时,请考虑使用^{}(如果需要聚合,请使用^{}):

import pandas as pd
df = pd.DataFrame({'Document': ['A', 'A', 'C', 'D', 'B', 'D'],
                   'Freq': ['3', '5', '1', '4', '2', '1'],
                   'TermId': ['112', '055', '003', '001', '003', '089']})
result = df.pivot(index='TermId', columns='Document', values='Freq').fillna(0)
print(result)

收益率

Document  A  B  C  D
TermId              
001       0  0  0  4
003       0  2  1  0
055       5  0  0  0
089       0  0  0  1
112       3  0  0  0

相关问题 更多 >

    热门问题