For these problems, I usually default to np.select, so that I can create complex conditions, and set the outputs in a clear and expandable way.
First, create your conditions (Create as many of these as you want):
p1 = df.Color.eq('Blue')
p2 = df.Age.eq(28)
p3 = df.City.eq('Atl')
condition = p1 & p2 & p3
Now using numpy.select, passing a list of your conditions, a list of your matching outputs, and a default value:
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
If you really only have one condition, you can also use numpy.where here:
np.where(condition, 1, df.Value)
# array([1, 0, 1], dtype=int64)