Расщепление слов в пандах DataFrame - PullRequest
0 голосов
/ 03 января 2019

У меня есть DataFrame, я хотел разбить текст на слова, но я получаю квадратную скобку между наборами слов.Я использую код, упомянутый ниже.

for index1, row1 in df.iterrows():

   words1 = set([word for word in str(row1.values).split()])

Я создаю DataFrame из файла CSV, затем разбив его на слова.

0,"['cell', 'study', 'protein', 'result', 'effect', 'gene', 'treatment', 'may', 'level', 'mouse']"

Вывод ->

{'effect', 'result', 'treatment', '[0', 'protein', 'may', 'level', "'cell", "mouse']", 'study', 'gene'}

но желаемый вывод -

{'effect', 'result', 'treatment', '0', 'protein', 'may', 'level', 'cell', 'mouse', 'study', 'gene'}

Почему я получаю список [0', 'protein', 'may', 'level', "'cell", "mouse'] в выводе?

Пожалуйста, предложите возможные способы его токенизации.

1 Ответ

0 голосов
/ 03 января 2019

Когда вы вызываете str(row1.values), вы конвертируете список слов в строку, которая выглядит как список. Когда вы затем применяете .split(), строка разделяется пробелами. Ясно, что квадратные скобки не являются пробелами, и они остаются как есть.

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

words1 = set(row1.values)

Однако, скорее всего, вы хотите сделать это для всего кадра данных сразу:

df.apply(set, axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...