У меня есть дата-кадр и ряд, как показано ниже
user_response = pd.DataFrame({
'val_string': ['Correct','Mute','Test13','Test15','Unverified',np.nan,'>10 Edu'],
'num':[np.nan,np.nan,1201,1203,np.nan,np.nan,np.nan]
})
option_numbers = pd.DataFrame({
'answer':['Correct','Incorrect','mute','cannot see','paralysed','illiterate','tired','cannot hear','NIL',
'English','Malay','Mandarin','Hokkien','Teochew','Cantonese','Other - specify','Chinese',
'0 Edu','1-6 Edu','7-10 Edu','>10 Edu','Unreachable','Incomplete','Unverified','Complete'],
'option':[1,0,0,1,2,3,4,5,6,1,2,3,4,5,6,7,8,1,2,3,4,5,0,1,2]})
option_number = option_number.set_index('answer')['option']
Хотя я могу успешно отобразить на основе приведенного ниже кода для соответствующих элементов, я теряю существующие значения для non-matching
элементов
user_response['num'] = user_response['val_string'].map(option_numbers)
Если вы запустите мой код, вы увидите, что он теряет значение Test13
, Test15
, поскольку его нет в option_numbers series
и не совпадает Mute
с mute
из-за чувствительности к регистру
Можете ли вы помочь мне выяснить это?
Я ожидаю, что мой вывод будет таким, как показано ниже