首页 > 解决方案 > 将字典中的值转换为矩阵

问题描述

我计算了一个单词在文本文档中出现的次数,并将这些值放入字典中。现在我想将这些数量添加到一个矩阵中,该矩阵由作为列的文本文件和作为行的不同单词组成。这是字典的输出:

{'test1.txt': {'peer': 1, 'appel': 1, 'moes': 1}, 
'test2.txt': {'peer': 1, 'appel': 1}, 
'test3.txt': {'peer': 1, 'moes': 2}, 
'test4.txt': {'peer': 1, 'moes': 1, 'ananas': 1}}

矩阵的输出必须如下所示:

[['', 'test1.txt', 'test2.txt', 'test3.txt', 'test4.txt'],
['moes', 1, 0, 2, 1],
['appel', 1, 1, 0, 0],
['peer', 1, 1, 1, 1],
['ananas', 0, 0, 0, 1]]

这是我现在用来打印矩阵的代码,但是一个单词在每个文档中出现的次数还没有实现。

term_freq_matrix = []

list_of_files.insert(0," ")
term_freq_matrix.insert(1, list_of_files)

for unique_word in unique_words:
    unique_word = unique_word.split()
    term_freq_matrix.append(unique_word)

print(term_freq_matrix)

谢谢!

标签: pythonlistdictionarymatrixnested-lists

解决方案


与熊猫:

import pandas as pd
df = pd.DataFrame(d).fillna(0)  #d is your dictionary
result = [[''] + df.columns.to_numpy().tolist()]+ df.reset_index().to_numpy().tolist()
print(result)

输出

[['', 'test1.txt', 'test2.txt', 'test3.txt', 'test4.txt'],
 ['ananas', 0.0, 0.0, 0.0, 1.0], 
 ['appel', 1.0, 1.0, 0.0, 0.0], 
 ['moes', 1.0, 0.0, 2.0, 1.0], 
 ['peer', 1.0, 1.0, 1.0, 1.0]]

推荐阅读