Поэтому я читаю файл 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 за столбец будет приятным.
Вам просто нужно преобразовать столбцы в string
так как пока у вас есть list
строк, которые WordCloud
не может выполнить. Просто,
text = WordCloud().generate(df['col1'].to_string())
И ваше выходное изображение -
Вы должны сначала рассмотреть, правильно ли вы обрабатываете свои данные, но, похоже, он преследует цель его токенизации, а затем снова все вместе.
Если вам это нужно, вы можете получить значения из своих столбцов и использовать 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'
Если это делается для нескольких столбцов, вам нужно будет добавить каждое из значений столбца, прежде чем их связывать.