Как создать DF из словаря, используя нестандартные разделители? - PullRequest
0 голосов
/ 28 января 2019

Я попытался посчитать частоту слов с помощью словаря:

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 голосов
/ 28 января 2019

Вы очень близки.При 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
0 голосов
/ 28 января 2019
 df = pd.DataFrame(data={'words':vocabulary.keys,'counts':vocabulary.values})

Пандам необходимо иметь данные для каждого столбца в словаре.Он думает, что ваши ключи (слова) являются именами столбцов.Вы должны дать ему имена столбцов.Вы можете добиться этого, создав новый словарь с элементами из существующего словаря.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...