У меня грязная строковая переменная, содержащая информацию о сцене, я хочу создать более чистую строку с меньшим количеством групп. Текущий фрейм данных выглядит следующим образом:
cohort = pd.DataFrame({'stage_group': ['XXX Stage I', 'Stage II XXX', 'Stage III XXX', 'XX Stage IV XXX', 'NA']},index=[1, 2, 3, 4, 5])
Моя идеальная переменная - это 3 уровня: этап I-III, этап IV и неизвестно:
cohort2 = pd.DataFrame({'stage_group': ['XXX Stage I', 'Stage II XXX', 'Stage III XXX', 'XX Stage IV XXX','NA'],'stage': ['Stage I', 'Stage II', 'Stage III', 'Stage IV', 'Unknown']},index=[1, 2, 3, 4, 5])
Я попробовал следующие коды, но они сделали неправильно назначить группу (я только что получил I-III этап и неизвестен). Любые предложения были бы полезны.
searchfor = ['Stage I', 'Stage II', 'Stage III']
cohort['stage'] = pd.np.where(cohort.stage_group.str.contains('|'.join(searchfor)), "Stage I-III",
pd.np.where(cohort.stage_group.str.contains('Stage IV'), "Stage IV", "Unkown"))