Вы можете использовать str.contains
, чтобы проверить, где выполняется условие:
l = ('|').join(['Maternity leave', 'Student'])
m = random_sample['NAME_INCOME_TYPE'].str.contains(l)
Вы также можете сгенерировать m
, используя .isin
:
random_sample['NAME_INCOME_TYPE'].isin(['Maternity leave', 'Student'])
А затем используйте np.where
.Однако учтите, что вы не можете указать только одно из двух значений, из которых можно выбирать, в зависимости от условия, вы должны указать и x
, и y
.Для вашего случая вы можете использовать df['NAME_INCOME_TYPE']
и other
в качестве x
и y
:
random_sample['NAME_INCOME_TYPE_ind'] = np.where(m,
'Other',
random_sample['NAME_INCOME_TYPE'])
Тест на примере кадра данных:
df = pd.DataFrame({'NAME_INCOME_TYPE':['word1','word2','Student']})
l = ('|').join(['Maternity leave', 'Student'])
m = random_sample['NAME_INCOME_TYPE'].str.contains(l)
df['NAME_INCOME_TYPE_ind'] = np.where(m, 'Other', df['NAME_INCOME_TYPE'])
NAME_INCOME_TYPE NAME_INCOME_TYPE_ind
0 word1 word1
1 word2 word2
2 Student Other