Saltar al contenido

Python pandas: cómo eliminar los valores nan e -inf

Solución:

Usar pd.DataFrame.isin y busque filas que tengan alguna con pd.DataFrame.any. Finalmente, use la matriz booleana para cortar el marco de datos.

df[~df.isin([np.nan, np.inf, -np.inf]).any(1)]

             time    X    Y  X_t0     X_tp0   X_t1     X_tp1   X_t2     X_tp2
4        0.037389    3   10     3  0.333333    2.0  0.500000    1.0  1.000000
5        0.037393    4   10     4  0.250000    3.0  0.333333    2.0  0.500000
1030308  9.962213  256  268   256  0.000000  256.0  0.003906  255.0  0.003922

Puedes reemplazar inf y -inf con NaNy luego seleccione filas no nulas.

df[df.replace([np.inf, -np.inf], np.nan).notnull().all(axis=1)]  # .astype(np.float64) ?

o

df.replace([np.inf, -np.inf], np.nan).dropna(axis=1)

Verifique el tipo de devoluciones de sus columnas para asegurarse de que sean todas las esperadas (por ejemplo, np.float32 / 64) a través de df.info().

df.replace([np.inf, -np.inf], np.nan)

df.dropna(inplace=True)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *