我试图通过词汇数来计算单词的频率:
vocabulary = {}
for word in lemmatizer_results:
if word in vocabulary:
vocabulary[word] += 1
else:
vocabulary[word] = 1
此后,我尝试通过以下方式将结果转换为DataFrame:
df = pd.DataFrame.from_dict(vocabulary, orient='index', columns=['word', 'frequency'])
如果字典的结构是这样的话,它会起作用:
vocabulary = {'word1': [3],
'word2': [34]}
但是我有这样的结构:
vocabulary = {'three': 1622,
'elephant': 66,
'power': 1070,
'story': 667,
'b': 65,
'paterson': 1,}
您能帮我根据这些数据创建DF吗?谢谢!
答案 0 :(得分:0)
df = pd.DataFrame(data={'words':vocabulary.keys,'counts':vocabulary.values})
熊猫需要具有字典中每一列的数据。它认为您的键(单词)是列名。您需要为其指定列名称。您可以通过使用现有词典中的元素来构建新词典来实现此目的。
答案 1 :(得分:0)
您非常亲密。使用orient='index'
,字典键可转换为数据帧索引,而值可转换为数据。因此,您可以重命名索引,然后将其重置。
df = pd.DataFrame.from_dict(vocabulary, orient='index', columns=['frequency'])\
.rename_axis('word').reset_index()
print(df)
word frequency
0 three 1622
1 elephant 66
2 power 1070
3 story 667
4 b 65
5 paterson 1