Reemplazar rango específico de valores en los marcos de datos pandas

Tengo un gran conjunto de datos y hay toneladas de valores que están muy por encima del promedio. Por ejemplo,

AB 1 'H' 10 2 'E' 10000 3 'L' 12 4 'L' 8 5 'O' 11 

y quiero establecer la celda B2 como 0 y probé esto,

 df['B'] = df['B'].replace([df['B'] > 15], 0) 

Pero no tuve suerte. ¿Cómo puedo hacer mi dataframe de esta manera,

  AB 1 'H' 10 2 'E' 0 3 'L' 12 4 'L' 8 5 'O' 11 

¡Gracias!

Usted está realmente cerca, en lugar de replace mask uso:

 df['B'] = df['B'].mask(df['B'] > 15, 0) print (df) AB 1 'H' 10 2 'E' 0 3 'L' 12 4 'L' 8 5 'O' 11 

Alternativa:

 df['B'] = np.where(df['B'] > 15, 0, df['B']) print (df) AB 1 'H' 10 2 'E' 0 3 'L' 12 4 'L' 8 5 'O' 11 

Si quieres reemplazar algún rango:

 df['B'] = np.where(df['B'].between(8,11), 0, df['B']) print (df) AB 1 'H' 0 2 'E' 10000 3 'L' 12 4 'L' 0 5 'O' 0 

Otra alternativa:

 df.loc[df['B'] > 15, 'B'] = 0 # df # B #0 10 #1 0 #2 12 #3 8 #4 11