Buscamos en todo el mundo on line y así de esta forma brindarte la solución para tu duda, si continúas con preguntas déjanos tu pregunta y responderemos con gusto.
Solución:
Puedes usar clips.
Aplicar a todas las columnas del marco de datos:
df.clip(upper=15)
De lo contrario, aplique a las columnas seleccionadas como se ve aquí:
df.clip(upper=pd.Series('a': 15), axis=1)
Supongo que puedes hacer:
maxVal = 15
df['a'].where(df['a'] <= maxVal, maxVal) # where replace values with other when the
# condition is not satisfied
#0 10
#1 12
#2 15
#3 15
#4 15
#5 15
#Name: a, dtype: int64
O:
df['a'][df['a'] >= maxVal] = maxVal
numpy.clip
es una alternativa buena y rápida.
df
a
0 10
1 12
2 15
3 17
4 19
5 20
np.clip(df['a'], a_max=15, a_min=None)
0 10
1 12
2 15
3 15
4 15
5 15
Name: a, dtype: int64
# Or,
np.clip(df['a'].to_numpy(), a_max=15, a_min=None)
# array([10, 12, 15, 15, 15, 15])
Desde v0.21 en adelante, también puede usar DataFrame.clip_upper
.
Nota
Este método (junto con
clip_lower
) ha quedado obsoleto desde v0.24 y se eliminará en una versión futura.
df.clip_upper(15)
# Or, for a specific column,
df['a'].clip_upper(15)
a
0 10
1 12
2 15
3 15
4 15
5 15
De manera similar, si solo desea establecer el límite inferior, use DataFrame.clip_lower
. Estos métodos también están disponibles en Series
objetos.
Recuerda que tienes concesión de agregar una reseña si te fue de ayuda.