gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 00:48:17 25 4
gpt4 key购买 nike

我有一个格式如下的 pandas df: 输入:

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

我想将此数据框转换为术语文档矩阵(最好是另一个 pandas df)。实现这一目标的最有效方法是什么?

前输出:

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

最佳答案

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

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

关于python - 将包含行名、列名和频率的 pandas df 转换为术语文档矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38303833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com