Ejemplos - Calidad datos

calidad_datos.CantidadDuplicados

Retorna el porcentaje/número de filas o columnas duplicadas (repetidas) en el dataframe. Ver documentación calidad_datos.CalidadDatos.CantidadDuplicados()

>>> # Se importan las funciones de la librería
>>> from leila.calidad_datos import CalidadDatos

>>> # Creamos un objeto tipo CalidadDatos con el dataframe de datos de interés
>>> datos = CalidadDatos(df_datos)
>>> # Numero de filas duplicadas
>>> repetidos_col_prop = datos.CantidadDuplicados(eje=0, numero=True)
>>> print(repetidos_col_prop)
10
>>> # Proporción de columnas duplicadas
>>> repetidos_col_prop = datos.CantidadDuplicados(eje=1, numero=False)
>>> print(repetidos_col_prop)
0.0833

De acuerdo a los resultados obtenidos vemos que la base de datos de ejemplo presenta 10 filas duplicadas y el 8.3% (2 de 24) de las columnas duplicadas.

calidad_datos.CorrelacionCategoricas

Genera una matriz de correlación entre las variables de tipo categóricas. Ver documentación calidad_datos.CalidadDatos.CorrelacionCategoricas()

Procedemos a calcular la correlación de variables tipo categóricas, en este caso utilizaremos el método de cramer y limitaremos el cálculo a las variables “Atención”, “Sexo”, “Tipo” y “Estado”.

>>> # Se importan las funciones de la librería
>>> from leila.calidad_datos import CalidadDatos

>>> # Creamos un objeto tipo CalidadDatos con el dataframe de datos de interés
>>> datos = CalidadDatos(df_datos)

>>> # Se invoca la función para calcular la correlación de variables categóricas
>>> matriz_cramer = datos.CorrelacionCategoricas(metodo='cramer', variables=['Atención', 'Sexo', 'Tipo', 'Estado'])
>>> print(matriz_cramer)
Index Atención Sexo Tipo Estado
Atención 1.000000 0.018562 0.080947 0.812447
Sexo 0.018562 1.000000 0.089351 0.022477
Tipo 0.080947 0.089351 1.000000 0.141895
Estado 0.812447 0.022477 0.141895 1.000000

calidad_datos.CorrelacionNumericas

Genera una matriz de correlación entre las variables de tipo numérico. Ver documentación calidad_datos.CalidadDatos.CorrelacionNumericas()

Procedemos a calcular la correlación de variables tipo numéricas, en este caso utilizaremos el método de spearman.

>>> # Se importan las funciones de la librería
>>> from leila.calidad_datos import CalidadDatos

>>> # Creamos un objeto tipo CalidadDatos con el dataframe de datos de interés
>>> datos = CalidadDatos(df_datos)

>>> # Se invoca la función para calcular la correlación de variables numéricas
>>> corr_spearman = datos.CorrelacionNumericas(metodo="spearman")
>>> print(corr_spearman)
Index Edad Edad 2 Edad meses
Edad 1.000000 1.000000 0.999849
Edad 2 1.000000 1.000000 0.999849
Edad meses 0.999849 0.999849 1.000000

calidad_datos.DescripcionCategoricas

Genera una tabla con los primeros 10 valores más frecuentes de las columnas categóricas del dataframe, además calcula su frecuencia y porcentaje dentro del total de observaciones. Incluye los valores faltantes. Ver documentación calidad_datos.CalidadDatos.DescripcionCategoricas()

Procedemos a generar la tabla descriptiva de variables tipo categóricas, en este caso limitaremos el cálculo a las variables “Atención” y “Pertenencia etnica”.

>>> # Se importan las funciones de la librería
>>> from leila.calidad_datos import CalidadDatos

>>> # Creamos un objeto tipo CalidadDatos con el dataframe de datos de interés
>>> datos = CalidadDatos(df_datos)

>>> # Se invoca la función para generar la tabla descriptiva de variables categóricas
>>> descripcion_categoricas = datos.DescripcionCategoricas(variables=['Atención', 'Pertenencia etnica'])
>>> print(descripcion_categoricas)
Index Columna Valor Frecuencia Porcentaje del total de filas
0 Atención Recuperado 59927.0 0.913299
1 Atención Fallecido 2914.0 0.044410
2 Atención Hospital 2138.0 0.032584
3 Atención Hospital UCI 438.0 0.006675
4 Atención Casa 6.0 0.000091
5 Atención Datos faltantes 193.0 0.002941
6 Atención Total categorías (incluye NA): 6 NaN NaN
0 Pertenencia etnica Otro 57670.0 0.878901
1 Pertenencia etnica Negro 5003.0 0.076247
2 Pertenencia etnica Indígena 1333.0 0.020315
3 Pertenencia etnica Rom 293.0 0.004465
4 Pertenencia etnica Raizal 72.0 0.001097
5 Pertenencia etnica Palenquero 15.0 0.000229
6 Pertenencia etnica Datos faltantes 1230.0 0.018745
7 Pertenencia etnica Total categorías (incluye NA): 7 NaN NaN

calidad_datos.DescripcionNumericas

Calcula estadísticas descriptivas de cada columna numérica. Ver documentación calidad_datos.CalidadDatos.DescripcionNumericas()

>>> # Se importan las funciones de la librería
>>> from leila.calidad_datos import CalidadDatos

>>> # Creamos un objeto tipo CalidadDatos con el dataframe de datos de interés
>>> datos = CalidadDatos(df_datos)

>>> # Se invoca la función para generar la tabla descriptiva de variables numéricas
>>> descripcion_numericas = datos.DescripcionNumericas()
>>> print(descripcion_numericas)
Index count mean std min 25% 50% 75% max missing outliers_total outliers_altos outliers_bajos
Edad 65616.0 39.175536 18.661339 0.0 26.0 36.0 52.0 104.0 0.0 0.002865 0.002865 0.0
Edad 2 65616.0 39.175536 18.661339 0.0 26.0 36.0 52.0 104.0 0.0 0.002865 0.002865 0.0
Edad meses 65616.0 476.099625 223.962309 1.0 318.0 443.0 626.0 1250.0 0.0 0.004054 0.004054 0.0

calidad_datos.EmparejamientoDuplicados

Retorna las columnas o filas que presenten valores duplicados del dataframe. Ver documentación calidad_datos.CalidadDatos.EmparejamientoDuplicados()

>>> # Se importan las funciones de la librería
>>> from leila.calidad_datos import CalidadDatos

>>> # Creamos un objeto tipo CalidadDatos con el dataframe de datos de interés
>>> datos = CalidadDatos(df_datos)
>>> # Se invoca la función para identificar las columnas duplicadas
>>> duplicados_col = datos.EmparejamientoDuplicados(col=True)
>>> print(duplicados_col)
Index Columnas iguales 1 Columnas iguales 2
0 Edad Fecha reporte web
1 Edad 2 Fecha de registro
>>> # Se invoca la función para identificar las filas duplicadas
>>> duplicados_fil = datos.EmparejamientoDuplicados(col=False)
>>> print(duplicados_fil)
Index Filas iguales 1 Filas iguales 2 Filas iguales 3 Filas iguales 4 Filas iguales 5 Filas iguales 6 Filas iguales 7 Filas iguales 8 Filas iguales 9
0 1 224 267 21571 48235 48237 60173 60175 64994
1 2 225 268 21572 48236 48238 60174 60176 64995
2     269            

calidad_datos.Memoria

Calcula el tamaño de la base de datos en memoria (megabytes). Ver documentación calidad_datos.CalidadDatos.Memoria()

>>> # Se importan las funciones de la librería
>>> from leila.calidad_datos import CalidadDatos

>>> # Creamos un objeto tipo CalidadDatos con el dataframe de datos de interés
>>> datos = CalidadDatos(df_datos)

>>> # Se invoca la función para realizar el cálculo de uso en memoria en megabytes
>>> peso_base = datos.Memoria(col=False, unidad='megabyte')
>>> print(peso_base)
12.01

calidad_datos.Resumen

Retorna una tabla con información general de la base de datos. Ver documentación calidad_datos.CalidadDatos.Resumen()

>>> # Se importan las funciones de la librería
>>> from leila.calidad_datos import CalidadDatos

>>> # Creamos un objeto tipo CalidadDatos con el dataframe de datos de interés
>>> datos = CalidadDatos(df_datos)

>>> # Se invoca la función para generar la tabla de información general de la base de datos
>>> resumen = datos.Resumen(columnasRepetidas=True)
>>> print(resumen)
Index Valor
Número de filas 65616
Número de columnas 24
Columnas numéricas 3
Columnas de texto 15
Columnas booleanas 0
Columnas de fecha 6
Otro tipo de columnas 0
Número de filas repetidas 10
Número de columnas repetidas 2
Columnas con más de la mitad de datos faltantes 4
Columnas con más del 10% de datos como extremos 0
Uso en memoria de la base en megabytes (aproximado) 12

calidad_datos.TipoColumnas

Retorna el tipo de dato de cada columna del dataframe. Ver documentación calidad_datos.CalidadDatos.TipoColumnas()

>>> # Se importan las funciones de la librería
>>> from leila.calidad_datos import CalidadDatos

>>> # Creamos un objeto tipo CalidadDatos con el dataframe de datos de interés
>>> datos = CalidadDatos(df_datos)

>>> # Se invoca la función para generar la tabla de descripción
>>> tipos_columnas = datos.TipoColumnas()
>>> print(tipos_columnas)
Index tipo_general tipo_general_python tipo_especifico_1 tipo_especifico_2
ID de caso Texto object “str”: 100.0%  
Fecha de notificación Fecha datetime64[ns] “pandas._libs.tslibs.timestamps.Timestamp”: 100.0%  
Código DIVIPOLA Texto object “str”: 100.0%  
Ciudad de ubicación Texto object “str”: 100.0%  
Departamento o Distrito Texto object “str”: 100.0%  
Atención Texto object “str”: 99.71% nan: 0.29%
Edad Numérico int64 “int”: 100.0%  
Edad 2 Numérico int64 “int”: 100.0%  
Edad meses Numérico int64 “int”: 100.0%  
Sexo Texto object “str”: 100.0%  
Tipo Texto object “str”: 100.0%  
Estado Texto object “str”: 99.66% nan: 0.34%
País de procedencia Texto Texto object nan: 98.58% “str”: 1.42%
Fecha de inicio de síntomas Texto object “str”: 100.0%  
Fecha de muerte Fecha datetime64[ns] nan: 95.38% “pandas._libs.tslibs.timestamps.Timestamp”: 4.62%
Fecha diagnostico Fecha datetime64[ns] “pandas._libs.tslibs.timestamps.Timestamp”: 98.41% nan: 1.59%
Fecha recuperado Fecha datetime64[ns] “pandas._libs.tslibs.timestamps.Timestamp”: 91.33% nan: 8.67%
Fecha reporte web Fecha datetime64[ns] “pandas._libs.tslibs.timestamps.Timestamp”: 100.0%  
Fecha de registro Fecha datetime64[ns] “pandas._libs.tslibs.timestamps.Timestamp”: 100.0%  
Tipo recuperación Texto object “str”: 91.33% nan: 8.67%
Codigo departamento Texto object “str”: 100.0%  
Codigo pais Texto texto object nan: 98.65% “str”: 1.35%
Pertenencia etnica Texto object “str”: 98.13% nan: 1.87%
Nombre grupo etnico Texto object nan: 97.97% “str”: 2.03%

calidad_datos.ValoresExtremos

Calcula el porcentaje o cantidad de outliers de cada columna numérica (las columnas con números en formato string se intentarán transformar a columnas numéricas). Ver documentación calidad_datos.CalidadDatos.ValoresExtremos()

>>> # Se importan las funciones de la librería
>>> from leila.calidad_datos import CalidadDatos

>>> # Creamos un objeto tipo CalidadDatos con el dataframe de datos de interés
>>> datos = CalidadDatos(df_datos)

>>> # Se invoca la función para realizar el cálculo de valores extremos
>>> extremos_ambos_prop = datos.ValoresExtremos(extremos="ambos", numero=True)
>>> print(extremos_ambos_prop)
Index Valor
Edad 188
Edad 2 188
Edad meses 266

calidad_datos.ValoresFaltantes

Calcula el porcentaje/número de valores faltantes de cada columna del dataframe. Ver documentación calidad_datos.CalidadDatos.ValoresFaltantes()

>>> # Se importan las funciones de la librería
>>> from leila.calidad_datos import CalidadDatos

>>> # Creamos un objeto tipo CalidadDatos con el dataframe de datos de interés
>>> datos = CalidadDatos(df_datos)

>>> # Se invoca la función para realizar el cálculo de proporción de valores faltantes
>>> faltantes_prop = datos.ValoresFaltantes(numero=False)
>>> print(faltantes_prop)
Index Valor
ID de caso 0.000000
Fecha de notificación 0.000000
Código DIVIPOLA 0.000000
Ciudad de ubicación 0.000000
Departamento o Distrito 0.000000
Atención 0.002941
Edad 0.000000
Edad 2 0.000000
Edad meses 0.000000
Sexo 0.000000
Tipo 0.000000
Estado 0.003414
País de procedencia 0.985766
Fecha de inicio de síntomas 0.000000
Fecha de muerte 0.953837
Fecha diagnostico 0.015941
Fecha recuperado 0.086701
Fecha reporte web 0.000000
Fecha de registro 0.000000
Tipo recuperación 0.086701
Codigo departamento 0.000000
Codigo pais 0.986512
Pertenencia etnica 0.018745
Nombre grupo etnico 0.979685

calidad_datos.ValoresUnicos

Calcula la cantidad de valores únicos de cada columna del dataframe. Ver documentación calidad_datos.CalidadDatos.ValoresUnicos()

>>> # Se importan las funciones de la librería
>>> from leila.calidad_datos import CalidadDatos

>>> # Creamos un objeto tipo CalidadDatos con el dataframe de datos de interés
>>> datos = CalidadDatos(df_datos)

>>> # Se invoca la función para realizar el cálculo de valores únicos
>>> unicos = datos.ValoresUnicos(faltantes=True)
>>> print(unicos)
Index Valor
ID de caso 65606
Fecha de notificación 119
Código DIVIPOLA 578
Ciudad de ubicación 559
Departamento o Distrito 37
Atención 6
Edad 105
Edad 2 105
Edad meses 1082
Sexo 4
Tipo 3
Estado 6
País de procedencia 43
Fecha de inicio de síntomas 128
Fecha de muerte 127
Fecha diagnostico 114
Fecha recuperado 134
Fecha reporte web 104
Fecha de registro 104
Tipo recuperación 3
Codigo departamento 36
Codigo pais 40
Pertenencia etnica 7
Nombre grupo etnico 49

calidad_datos.VarianzaEnPercentil

Retorna las columnas numéricas cuyo percentil_inferior sea igual a su percentil_superior. Ver documentación calidad_datos.CalidadDatos.VarianzaEnPercentil()

>>> # Se importan las funciones de la librería
>>> from leila.calidad_datos import CalidadDatos

>>> # Creamos un objeto tipo CalidadDatos con el dataframe de datos de interés
>>> datos = CalidadDatos(df_datos)

>>> # Se invoca la función para realizar el cálculo de varianza
>>> varianza_perc = datos.VarianzaEnPercentil()
>>> print(varianza_perc)
No hay ninguna columna numérica que tenga el percentil 5 y el percentil 95 igual