Как преобразовать токенизированный фрейм данных в строку для генерации облака слов

1

Поэтому я читаю файл excel в dataframe, а затем нормализую его (строчные, стоп-слова и т.д.),

Теперь у моей dataframe есть несколько столбцов из файла excel, но только те, которые мне нужны, и это выглядит примерно так. Я должен был это сделать.

ДФ [ 'col1']

0 [this, is , fun, interesting]
1 [this, is, fun, too]
2 [ even, more, fun]

У меня больше похожих столбцов, таких как df ['col2'] и т.д.

Теперь я хочу создать слово облако

from wordcloud import WordCloud
text = WordCloud().generate(df['col'])
plt.imshow(text)
plt.axis("off")
plt.show()

Я пытаюсь создать wordcloud, но это не работает, поскольку, очевидно, слово cloud ожидает строку. Как преобразовать весь файл данных в строку?

Я хочу преобразовать весь фрейм данных в строку, а затем сгенерировать словосочетание, но если это невозможно, то, по крайней мере, wordcloud за столбец будет приятным.

Теги:
pandas

2 ответа

1

Вам просто нужно преобразовать столбцы в string так как пока у вас есть list строк, которые WordCloud не может выполнить. Просто,

text = WordCloud().generate(df['col1'].to_string())

И ваше выходное изображение - Изображение 174551

  • 0
    так просто, но я потратил часы, пытаясь понять это. Спасибо
  • 0
    Знаете ли вы, как я могу lammetize вышеупомянутого кадра данных с помощью nltk.stem import WordNetLemmatizer?
0

Вы должны сначала рассмотреть, правильно ли вы обрабатываете свои данные, но, похоже, он преследует цель его токенизации, а затем снова все вместе.

Если вам это нужно, вы можете получить значения из своих столбцов и использовать chain из стандартной библиотеки модулей Python, чтобы связать их вместе, а затем присоединиться к ним, чтобы получить строковое представление всех слов.

import pandas as pd
from itertools import chain

df = pd.DataFrame({'col1':[['this', 'is' , 'fun', 'interesting'],['this', 'is', 'fun', 'too'],['even','more']]})
word_list = list(chain.from_iterable(df.col1.values))
words = ' '.join(word_list)

words
>>'this is fun interesting this is fun too even more'

Если это делается для нескольких столбцов, вам нужно будет добавить каждое из значений столбца, прежде чем их связывать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню