Классификация текста в пандах (питоне) - PullRequest
0 голосов
/ 01 июня 2018

Итак, у меня есть очень большой файл данных pandas, состоящий из данных транзакций:

description   amount
foo           10
bar           5
baz           9
foo bar       12
foobar        15
bar baz       20
bazbar        19

Ожидаемый результат следующий:

description   amount    tag
foo           10        foo 
bar           5         bar
baz           9         baz
foo bar       12        foo, bar
foobar        15        foobar 
bar baz       20        bar, baz
bazbar        19        bazbar

Мой мыслительный процесс выглядит следующим образом:

  • Создайте огромный список уникальных words из всех строк в df['description']
  • Затем для нового столбца df['tag'], для каждого элемента в списке, выполните isin и назначьтесоответствующий тег.

Я не уверен, как создать список уникальных words.Кроме того, я не уверен, что это правильный подход к решению этой проблемы.

Цените любую помощь!

1 Ответ

0 голосов
/ 01 июня 2018
a = pd.DataFrame({'description': ['foo', 'bar', 'bas', 'foo bar', 
'foobar', 'bar baz', 'bazbar']})
a['tag'] = a.description.apply(lambda x: ', '.join(x.split()))
print(a)

description    tag
foo            foo
bar            bar
bas            bas
foo bar        foo, bar
foobar         foobar
bar baz        bar, baz
bazbar         bazbar

A .apply(lambda...) - хорошая парадигма в пандах, которая будет проходить через каждый ряд и выполнять функцию.Здесь я делаю список из разделенных пробелами слов в столбце описания с помощью .split(), а затем преобразую его обратно в строку с разделением , с помощью .join()

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