#python #pandas #data-science #feature-engineering
#питон #панды #наука о данных #характеристика-проектирование
Вопрос:
Я должен заменить определенные значения одного столбца, если они совпадают со значением из другого столбца.
пример df:
column_1 column_2 X yes X yes Y yes X yes Y NaN
лямбда-функция, которую я пытаюсь применить, чтобы заменить » да » в столбце 2 на NaN, если столбец 1 == «Y»
df.column_2.apply(lambda x: x.replace('yes',np.NaN) if ((df.column_2 == 'yes') amp; (df.column_1 == 'Y')) else x)
Я получаю эту ошибку
Ошибка значения: Значение истинности ряда неоднозначно. Используйте.empty, a.bool(), a.item(), a.any() или a.all().
Комментарии:
1. df.примените(лямбда x: x[«column_2»].замените («да»,»»), если ((x [«column_2»] = = «да») amp; (x [«column_1»] = = «Y»), иначе x, ось=1), его смешанная работа со строками, а затем столбцами (рядами), используя apply и axis=1, у вас есть информация о строке для работы, заменив np.nan пустой строкой, так как появилась ошибка.
2. Это сработало как заклинание! большое вам спасибо!