Qué hacer cuando los pandas no reconocen la cadena de datos NA / ND como un valor faltante
Valores perdidos en pandas
En conjuntos de datos experimentales, los espacios en blanco se pueden complementar con NA, NA (No analizado) o ND, ND (No detectado). En pandas, NA y ND se reconocen como solo una cadena de caracteres (objeto), por lo que no es posible procesar por lotes los valores faltantes utilizando las funciones dropna (), fillna () e isnull () tal como están ...
Los siguientes se reconocen como valores perdidos en pandas:
- Yaya
- Ninguna
- np.nan
- matemáticas.nan
Las cadenas NA y ND deben convertirse a una de las anteriores.
Procesamiento para NA y ND
Cree datos de muestra, incluidos NA, ND y NaN.
En [1]: import numpy as np import pandas as pd df = pd.DataFrame ({'A': [1, 'ND', 2, 3], 'B': [4, 'NA', 5, 6 ], 'C': [7, 'ND', Ninguno, np.nan]}) Fuera [1] ABC 0 1 4 7 1 ND NA ND 2 2 5 NaN 3 3 5 NaN
None y np.nan se reconocen y cuentan como valores perdidos, pero ND y NA son falsos.
isnull (): Devuelve True si falta el valor
isnull.sum (): valores perdidos agregados
Entrada [2]: df.isnull () Out [2]: ABC 0 Falso Falso Falso 1 Falso Falso Falso 2 Falso Falso Verdadero 3 Falso Falso Verdadero In [3]: df.isnull (). Sum () Out [3] : A 0 B 0 C 2 dtipo: int64
Reemplazar cadena ND con función de reemplazo
En [4]: df = df.replace ('ND', np.nan) Fuera [4]: A B C 0 1 4 7 1 NaN NA NaN 2 2 5 NaN 3 3 5 NaN
isnull () y fillna () ahora se pueden aplicar.
In [5]: df.isnull () Out [5]: ABC 0 Falso Falso Falso 1 Verdadero Falso Verdadero 2 Falso Falso Verdadero 3 Falso Falso Verdadero In [6]: df.isnull (). Sum () Out [6] : A 2 B 0 C 2 dtype: int64 In [7]: df.fillna (10) Out [7]: ABC 0 1 4 7 1 10 NA 10 2 2 5 10 3 3 5 10
discusión
Lista de comentarios
Aún no hay comentarios