Python: как добавить значение в новый столбец на основе различных подстрок из другого столбца - PullRequest
0 голосов
/ 06 мая 2020

У меня есть более 6000 строк данных со столбцом, содержащим неоднородные строки (dtype = object), которые описывают основные c результаты.

Вот так:

      Outcome

    1 deceased (1987)
    2 likely living
    3 dead
    4 alive
    5 retired
    6 believed to be living
    7 believed to be deceased
    8 (1948) dead
    9 inactive
   10 likely deceased 

... и так далее. Есть и другие общие типы «результатов».

Я пытаюсь сгруппировать эти результаты в новый столбец, поэтому мой фрейм выглядит так:

      Outcome                      Category

    1 deceased (1987)              Deceased
    2 likely living                Living
    3 dead                         Deceased
    4 alive                        Living
    5 retired                      Retired
    6 believed to be living        Living
    7 believed to be deceased      Deceased
    8 (1948) dead                  Deceased
    9 inactive                     Retired
   10 likely deceased              Deceased

Это оказывается трудным учитывая необходимость гибкости в обработке строк в Outcome. Я пробовал искать решения этой проблемы на сайте, но мне не удалось найти ничего, что помогло бы моей конкретной проблеме c. Мне нужно что-то, что может:

  1. искать заданное ключевое слово в строке, независимо от его позиции
  2. связывать любое совпадающее ключевое слово с заранее определенной категорией
  3. Затем сохранять итоговая категория в новом столбце (который я планирую построить).
  4. Разрешить два или более ключевых слов для соответствия определенной категории (например, «умерший» и «мертвый» - -> 'Умерший')
  5. Работа для 5-10 заранее определенных категорий.
  6. Желательно разрешить любые другие неправильные c результаты, которые будут помещены в «другое» категория

В принципе, как мне сделать мой код похожим на последний пример? Я новичок в Python, поэтому я изо всех сил пытался найти решение, которое инкапсулирует все вышеперечисленное. Я понимаю, что это много, и, возможно, это не самое простое решение.

В любом случае, я очень признателен за любые предложения! Поскольку я новичок в этом, пожалуйста, простите меня, если я не упомянул ничего важного! Спасибо!

...