如何使用非标准分隔符从词汇表创建DF?

时间:2019-01-28 20:19:53

标签: python pandas dictionary dataframe

我试图通过词汇数来计算单词的频率:

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吗?谢谢!

2 个答案:

答案 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