你可以使用
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