Сопоставить несколько тегов со столбцом на основе слов (частичное или полное) в элементе столбца - PullRequest
1 голос
/ 23 мая 2019

У меня есть два набора данных, таких как:

  Tags
Insurance
Asset
Bank
Municipality
Government
Corporate
Gas
General US Public Finance
Real Estate

и так далее ... Я хочу назначить эти теги для другого набора данных.

второй набор данных выглядит так:

     UserTags
Real Estate Insurance
Corporate - Finance Company
Corporate - Energy / Utility / Commodities
Corporate - Non-Financial Other
Government Entity - Central Bank
Government Entity - Regulator
Government Entity - Municipality
Asset Bank

Я хочу использовать Python для сопоставления этих двух наборов данных следующим образом:

     UserTags                                        AssignedTags
Real Estate Insurance                                 Real Estate
Real Estate Insurance                                 Insurance
Corporate - Finance Company                           Corporate
Corporate - Energy / Utility / Commodities            Corporate
Corporate - Non-Financial Other                       Corporate
Government Entity - Central Bank                      Government
Government Entity - Central Bank                      Bank
Government Entity - Regulator                         Government
Government Entity - Municipality                      Government
Government Entity - Municipality                      Municipality
Asset Bank                                            Asset
Asset Bank                                            Bank

Итак, по сути, первый тег "Страхование недвижимости" содержал оба тэга: Недвижимость и Страхование, так что он появился дважды, по одному тэгу каждого.То же самое для "Государственное образование - Муниципалитет" .

Как я могу это сделать?Кроме того, если нет полного совпадения, могу ли я присвоить частичное совпадение тегу?например:

  Tag        AssignedTag

Municipal   Municipality

Спасибо.

1 Ответ

0 голосов
/ 24 мая 2019

Предполагая, что оба они - Серии Панд.Я имею в виду первую серию в этом вопросе как «теги», а вторую - как «user_tags».

matched = tags.apply(
    lambda x: user_tags.loc[tags.str.contains(x)]
)
final_table = pd.concat([tags,matched],axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...