Manejo de datos faltantes en Julia

Hoy en día, uno de los problemas comunes de los grandes datos es analizar los valores faltantes en esos datos. Los valores faltantes pueden conducir a un error de predicción importante que no es bueno para ningún punto de vista empresarial. Entonces, cuando encontramos datos faltantes, tenemos que aplicar diferentes técnicas para lidiar con los valores faltantes en el conjunto de datos.

Objeto faltante

El objeto que falta de Julia es el tipo definido por el usuario más poderoso y rápido, que es mucho mejor que la mayoría de los tipos integrados como NA, NaN y muchos más. También admite muchos tipos personalizados para aprovechar más.

Para proporcionar coherencia entre algunos tipos predefinidos para valores faltantes y algunos tipos personalizados, Julia introduce un nuevo objeto faltante , un objeto que no tiene campos y que es la única instancia del tipo Singleton faltante. Los valores pueden ser de tipo T o faltantes. Se puede declarar como Union{Missing, T} .

# missing object cast as Int
[1, missing]
  
# missing object cast as Char
['1', missing]
  
# missing object cast as Float64
[1.0, missing]

Producción:

El nuevo marco faltante de Julia es más genérico y eficiente. Garantiza la seguridad y la seguridad, que los valores faltantes nunca deben ignorarse en silencio ni reemplazarse con valores no faltantes. Cualquier operación matemática que se realice con este objeto faltante no afecta el resultado de la manipulación de datos. Si falta algún valor en el conjunto de datos, también podemos realizar algunas tareas sin tener ningún problema.

# Adding something with missing value
1 + missing
  
# Subtract something with missing value
1 - missing
  
# Multiply something with missing value
2 * missing
  
# Round-off missing value
round(missing)
  
# Taking cosine of missing value
cos(missing)

Producción:

Como puede ver, al usar el marco faltante, encontramos que cualquier operación en un objeto faltante no afectará el resultado, mientras que, si hacemos lo mismo con los valores NA o NAN, puede devolver un error o algunos tipos de excepción.

Para deshacernos de estos objetos perdidos, podemos usar una función de conveniencia llamada skipmissing() método. Lo que puede ayudarnos a usar los otros valores en el marco de datos o en una array.

# Sum the values of array ignoring missing
sum(skipmissing([1, missing, 5]))
  
# Mean of values of array ignoring missing
mean(skipmissing([4, missing, 3]))

Producción:

Métodos para manejar datos faltantes

Hay muchas formas de manejar los valores faltantes, algunas de ellas se dan a continuación:

Eliminar valores faltantes del marco de datos

En este método, podemos ver que al usar el dropmissing() método, podemos eliminar las filas que tienen valores faltantes en el marco de datos. Descartar valores perdidos es bueno para aquellos conjuntos de datos que son lo suficientemente grandes como para perder algunos datos que no afectarán la predicción y no es bueno para conjuntos de datos pequeños, ya que puede llevar a que los modelos no se ajusten bien.

# Install DataFrames and Missings
using Pkg
Pkg.add('DataFrames')
Pkg.add('Missings')
  
# Defining DataFrame having missing values
df = DataFrame(i = 1:6,
               x = [5, missing, 4, missing, 2, 1],
               y = ["a", missing, missing, "c", "d", "e"])
                 
# Droping missing data values
gfg = dropmissing(df)
  
print(gfg)

Producción:

Saltarse los valores faltantes del marco de datos

En este método, podemos ver que al usar el skipmissing() método, podemos omitir los valores faltantes. Es una opción mucho mejor eliminar los valores que faltan, al menos podemos tener los otros valores en esa fila que pueden actuar como datos útiles para hacer modelos.

# Install DataFrames and Missings
using Pkg
Pkg.add('DataFrames')
Pkg.add('Missings')
  
# Defining DataFrame having missing values
df = DataFrame(i = 1:6,
               x = [5, missing, 4, missing, 2, 1],
               y = ["a", missing, missing, "c", "d", "e"])
                 
# Skipping missing data values
gfg = skipmissing(df[2])
  
print(maximum(df[2]))
print(maximum(gfg))

Producción:

Publicación traducida automáticamente

Artículo escrito por Jitender_1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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