Создайте матрицу из диктата для расчета сходства между документами - PullRequest
0 голосов
/ 03 июля 2019

Вот моя проблема:

У меня есть такой фрейм данных:

id   tfidf_weights   
1    {word1: 0.01, word2: 0.01, word3: 0.01, ...}
2    {word4: 0.01, word5: 0.01, word6: 0.01, ...}
3    {word7: 0.01, word8: 0.01, word9: 0.01, ...}
4    {word10: 0.01, word11: 0.01, word12: 0.01, ...}
5    {word13: 0.01, word14: 0.01, word15: 0.01, ...}    
.
.
.

Столбец 'id' представляет идентификаторы документов, а 'tfidf_weights' - вес tfidf для каждого слова.из каждого документа.

из этого фрейма данных, я могу получить dict со следующей структурой:

mydict = {1:{word1: 0.01, word2: 0.01, word3: 0.01, ...}, 2:{word4: 0.01, word5: 0.01, word6: 0.01, ...}, 3:{word7: 0.01, word8: 0.01, word9: 0.01, ...}, 4:{word10: 0.01, word11: 0.01, word12: 0.01, ...}, 5:{word13: 0.01, word14: 0.01, word15: 0.01, ...}, ...}

я хочу получить из этого словаря матрицу, подобную этой:

      word1     word2     word3     word4   ...
1     0.01      0.01      0.01      0.01     
2     0.01      0.01      0.01      0.01
3     0.01      0.01      0.01      0.01
4     0.01      0.01      0.01      0.01
5     0.01      0.01      0.01      0.01
.
.
.

Спасибо за помощь!

1 Ответ

0 голосов
/ 03 июля 2019

Вы можете преобразовать список словарей в фрейм данных, используя непосредственно класс pandas DataFrame.

import pandas as pd

a = [{"0": 0}, {"1": 1}]
df = pd.DataFrame(a)

Чтобы применить это к вашей проблеме, все, что вам нужно сделать, это превратить mydict в списоксловарей вместо словаря словарей.

...