Разделение столбца DataFrame из ссылочного списка значений - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть pandas DataFrame (список видеоигр) с колонкой «классификация». В этом столбце мы можем найти:

  • простая классификация: «РПГ» или «Действие»
  • несколько классификаций: «Действие Приключенческая РПГ Roguelike», «Действие Shoot'em Up Wargame "

Вы заметили? нет разделителя ...

Конечно, мне нужно разделить это на новый столбец, разделитель WITH (или другую структуру с каждым отдельным элементом).

Так что

"Action Adventure RPG Roguelike" => "Action, Adventure, RPG, Roguelike"
"Action Shoot'em Up Wargame" => "Action, Shoot'em Up, Wargame"

Я не могу использовать ни пробел, ни Caps ("Shoot'em Up" - ОДНО значение).

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

Примерно так:

classification = ["Action", "Adventure", "RPG", "Roguelike", "Shoot'em Up", "Wargame"...]

def magic_tric(data):
   # do the magic, comparing each classification possible / data
   return data_separated

Но я не знаю, как это сделать. Наиболее эффективным способом ...

Может ли кто-нибудь мне помочь ...? Заранее спасибо.

1 Ответ

0 голосов
/ 04 февраля 2020

вот идея ... используя str.findall

                                0
0  Action Adventure RPG Roguelike
1      Action Shoot'em Up Wargame

sep = ["Action", "Adventure", "RPG", "Roguelike", "Shoot'em Up", "Wargame"]
pattern = '|'.join(sep)


pd.DataFrame(df[0].str.findall(pattern).tolist())

        0            1        2          3
0  Action    Adventure      RPG  Roguelike
1  Action  Shoot'em Up  Wargame       None
...