Преобразование строки, значения столбца в 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()})