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

Итак, я читаю файл Excel на фрейм данных и затем нормализую его (строчные буквы, стоп-слова ... и т. Д.)

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

df ['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()

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

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

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

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

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

И ваше выходное изображение будет enter image description here

0 голосов
/ 03 декабря 2018

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

Если вам все равно придется это сделать, вы можете получитьзначения из ваших столбцов и используйте 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'

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

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