Для этих проблем я обычно устанавливаю значение по умолчанию np.select
, чтобы я мог создавать сложные условия и настраивать выходные данные в понятной и расширяемой форме.
Сначала создайте свои условия (Создайте как можно большеэто как вы хотите):
p1 = df.Color.eq('Blue')
p2 = df.Age.eq(28)
p3 = df.City.eq('Atl')
condition = p1 & p2 & p3
Теперь, используя numpy.select
, передавайте список ваших условий, список подходящих результатов и значение по умолчанию:
df.assign(Value=np.select([condition], [1], df.Value))
Color Name Age City Value
0 Blue Bob 28 Atl 1
1 Green Bob 27 Chi 0
2 Blue Sam 28 Atl 1
Если у вас действительно есть только одно условие, вы также можете использовать numpy.where
здесь:
np.where(condition, 1, df.Value)
# array([1, 0, 1], dtype=int64)