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 NaN
y 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)