Преобразование строки, значения столбца в dict и в панды данных

Питон нуб здесь.

У меня есть датафрейм people с name а также text как две колонки.

  name       text
0 Obama      Obama was the 44th president of the...
1 Trump      Donald J. Trump ran as a republican...

и мне нужно провести некоторый предварительный анализ Obama только.

obama= people[people['name'] == 'Obama'].copy()
obama.text

35817    Obama was the 44th president of the unit...
Name: text, dtype: object

Как преобразовать текст в dict как новый столбец с ключами в качестве слов и количеством слов в качестве значений?
пример:

   name       text                                  dictionary
0 Obama      Obama was the 44th president of the... {'Obama':1, 'the':2,...}

как только я закончу конвертировать словарь в отдельный фрейм данных?
Ожидаемый результат :

   word   count
0  Obama  1
1  the    2

1 ответ

Решение

Вы можете использовать Counter объект из модуля коллекций:

import collections

people['dictionary'] = people.text.apply(lambda x: dict(collections.Counter(x.split())))

Чтобы преобразовать один из этих словарей в кадр данных:

dictionary = people['dictionary'][0]
pd.DataFrame(data={'word': dictionary.keys(), 'count': dictionary.values()})
Другие вопросы по тегам