Sustitución condicional de valores en columnas de dataframe pandas

Supongamos que tengo un dataframe de pandas con valores de columna con una edad como esta df.age = {25, 35, 76, 21, 23, 30}

Quiero hacer una sustitución in situ como esta:

si df.age> = 25 y df.age <= 35: reemplace ese valor con 1 else: reemplace ese valor con 0

He intentado esto df [df.age> = 7.35 y df.age <= 7.45, 'age'] = 0 pero no parece funcionar.

También puede crear una función para verificar sus condiciones y aplicarla al dataframe:

 def condition(value): if 25 <= value <= 35: return 1 return 0 # stealing sample from @AnandSKumar because I'm lazy In [32]: df Out[32]: age 0 25 1 35 2 76 3 21 4 23 5 30 In [33]: df['age'] = df['age'].apply(condition) In [34]: df Out[34]: age 0 1 1 1 2 0 3 0 4 0 5 1 

O usando un forro con lambda:

 df['age'] = df['age'].apply(lambda x: 1 if 25 <= x <= 35 else 0) 

Puede comparar la serie con los valores (25/35) según su condición, y luego usar astype(int) para convertir los valores True/False , a 1/0 . Ejemplo –

 df['age'] = ((25 <= df['age']) & (df['age'] <= 35)).astype(int) 

Demo

 In [2]: df = pd.DataFrame([[25], [35], [76], [21], [23], [30]],columns=['age']) In [3]: df Out[3]: age 0 25 1 35 2 76 3 21 4 23 5 30 In [6]: ((25 <= df['age']) & (df['age'] <= 35)).astype(int) Out[6]: 0 1 1 1 2 0 3 0 4 0 5 1 Name: age, dtype: int32