Verificación de rangos numéricos#

  • Ultima actualización: Mar 6, 2023 | YouTube

[1]:
import pandas as pd

pd.__version__
[1]:
'1.5.2'

Opciones#

  • Borrado del registro.

  • Conversión a nulo.

  • Corrección al máximo o mínimo.

  • Imputación como si fuere un valor nulo.

  • Actualización a un valor preestablecido.

[2]:
%%writefile /tmp/data.csv
personId,rangecol
1,1
2,3
3,2
4,10
5,0
6,1
7,10
8,9
Overwriting /tmp/data.csv

Los valores de la columna rangecol están restringidos al rango [1, 2, 3].

[3]:
df = pd.read_csv("/tmp/data.csv")

#
# registros que no cumplen la restricción.
#
df[(df.rangecol < 1) | (df.rangecol > 3)].rangecol
[3]:
3    10
4     0
6    10
7     9
Name: rangecol, dtype: int64
[4]:
#
# Se convierten valores > 3 a 3 y valoes < 1 a 1
#
df.rangecol[df.rangecol > 3] = 3
df.rangecol[df.rangecol < 1] = 1
df
[4]:
personId rangecol
0 1 1
1 2 3
2 3 2
3 4 3
4 5 1
5 6 1
6 7 3
7 8 3
[5]:
df = pd.read_csv("/tmp/data.csv")

#
# Borrado de registros que no están en el rango
# mediante selección
#
df = df[(df.rangecol >= 1) & (df.rangecol <= 3)]
df
[5]:
personId rangecol
0 1 1
1 2 3
2 3 2
5 6 1
[6]:
df = pd.read_csv("/tmp/data.csv")

#
# Borrado de registros que no están en el rango
# usando la función drop()
#
df.drop(
    df[(df.rangecol < 1) | (df.rangecol > 3)].index,
    inplace=True,
)
df
[6]:
personId rangecol
0 1 1
1 2 3
2 3 2
5 6 1