панды: лямбда-функция для замены значения столбца df при выполнении нескольких условий

#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. Это сработало как заклинание! большое вам спасибо!