<jupyter_start><jupyter_text>Módulo calidad_datos - LEILAEste libro de Jupyter contiene ejemplos con explicaciones de cómo utilizar el módulo que presenta métricas de calidad y descriptivas para conjuntos de datos estructurados<jupyter_code># Se importar la clase CalidadDatos del módulo calidad_datos
from leila.calidad_datos import CalidadDatos
# Se crea un objeto de la clase CalidadDatos con los datos de interés
ruta_covid = "dataset ejemplos.xlsx"
datos_covid = CalidadDatos(ruta_covid)<jupyter_output>C:\Users\jairoruiz\Documents\GitHub\leila_env\lib\site-packages\leila\calidad_datos.py:1307: UserWarning: Cargar archivos xlsx puede tomar demasiado tiempo, se aconseja fuertemente convertirlos a archivo csv, esto puede mejorar hasta 100x veces la velocidad de carga del archivo dataset ejemplos.xlsx
  "Cargar archivos xlsx puede tomar demasiado tiempo, se aconseja "<jupyter_text>1. Tabla de resumenEl método "resumen" calcula varias estadísticas que dan una primera impresión del conjunto de datos. Estas métricas incluyen el número de filas y columnas; número de columnas de distintos tipos; número de filas y columnas repetidas (duplicadas); columnas con muchos datos faltantes o extremos; peso del conjunto de datos<jupyter_code># Calcular la tabla de resumen con el método "Resumen"
resumen = datos_covid.Resumen()

# Visualizar la tabla de resumen
resumen<jupyter_output><empty_output><jupyter_text>2. Tipos de cada columnaEl método "TipoColumnas" calcula el tipo de cada columna de tres maneras diferentes. La primera es el tipo general de la columna en español. Indica si el tipo es numérico, texto, fecha, booleano u otroLa segunda muestra el tipo general según el método dtypes de Python.La tercera manera muestra los tipos de cada celda de cada columna. Es decir, muestra la distribución de tipos de cada columna. El tipo que más aparece en esa columna se muestra en la variable "tipo_especifico_1" de la tabla de tipos y muestra el porcentaje. En caso de haber más de un tipo, se mostrará en las siguientes columnas "tipo_especifico_"El ejemplo abajo muestra cómo el es código para generar los resultados de los tipos con el método "TipoCOlumnas". Los parámetros del método especifican qué tipo se quiere mostrar para las columnas (con las opciones True o False)<jupyter_code>tipos = datos_covid.TipoColumnas(tipoGeneral=True, 
                                 tipoGeneralPython=True, 
                                 tipoEspecifico=True)
tipos<jupyter_output><empty_output><jupyter_text>3. Datos faltantesEl método "ValoresFaltantes" permite calcular el número o porcentaje de valores faltantes de un conjunto de datos. Si el parámetro "numero" tiene asignado el valor True, se calcula el número de valores faltantes de cada columna. De lo contrario, si es False, se calcula el porcentaje.El ejemplo a continuación presenta los porcentajes de datos faltantes de cada columna del conjunto de datos de COVID-19<jupyter_code>faltantes = datos_covid.ValoresFaltantes(numero = False)
faltantes<jupyter_output><empty_output><jupyter_text>4. Datos duplicadosEl método "CantidadDuplicados" calcula el número o porcentaje de duplicados en el conjunto de datos. El ejemplo abajo calcula el número de duplicados para filas y columnas del conjunto de datos de COVID-19.<jupyter_code># Número de filas duplicadas. 
# Se escribe el parámetro eje = 0, para especificar fila
# Se escribe el parámetro numero = True, para especificar el número de duplicados (si es False se calcula el porcentaje)
filas_duplicadas = datos_covid.CantidadDuplicados(eje = 0, numero = True)

# Número de columnas duplicadas. 
# Se escribe el parámetro eje = 1, para especificar columna
# Se escribe el parámetro numero = False, para especificar el porcentaje de duplicados
columnas_duplicadas = datos_covid.CantidadDuplicados(eje = 1, numero = True)

print("Filas duplicadas: ", filas_duplicadas)
print("Columnas duplicadas: ", columnas_duplicadas)<jupyter_output>Filas duplicadas:  1
Columnas duplicadas:  2<jupyter_text>5. Emparejamiento de duplicadosEl método "EmparejamientoDuplicados" permite mostrar los nombres de filas o columnas que son exactamente iguales. El parámetro "col" especifica si se quieren emparejar los duplicados de filas al asignarlo a False. Para emparejar las columnas se escribe True.EL ejemplo abajo muestra los nombres de las filas duplicadas en cada columna de la tabla. Por ejemplo, la columna de la tabla "Filas iguales 1" muestra que las filas 1 y 2 son duplicadas.<jupyter_code>emparejamiento_dupli_filas = datos_covid.EmparejamientoDuplicados(col = False)
emparejamiento_dupli_filas<jupyter_output><empty_output><jupyter_text>EL ejemplo abajo muestra los nombres de las columnas duplicadas en cada columna de la tabla. Por ejemplo, la columna de la tabla "Columnas iguales 1" muestra que las columnas "Edad" y "Edad 2" son duplicadas<jupyter_code>emparejamiento_dupli_cols = datos_covid.EmparejamientoDuplicados(col = True)
emparejamiento_dupli_cols<jupyter_output><empty_output><jupyter_text>6. Estadísticas descriptivas de variables numéricasEl método DescripcionNumericas permite calcular estadísticas descriptivas para variables numéricas tales como el promedio, la desviación estándar, el mínimo, máximo, mediana (percentil 50), valores faltantes y extremos. El objetivo de estos cálculos es verificar si las variables del conjunto de datos contienen los valores esperados o si existen errores en la digitación de los valoresEl ejemplo abajo muestra las estadísticas descriptivas para las variables "Edad", "Edad_2" y "Edad meses"<jupyter_code>descr_numericas = datos_covid.DescripcionNumericas()
descr_numericas<jupyter_output><empty_output><jupyter_text>Es posible calcular las estadísticas descriptivas para algunas variables únicamente. Esto se hace al asignar una lista con las variables de interés al parámetro "variales", como se muestra a continuación<jupyter_code>descr_numericas = datos_covid.DescripcionNumericas(variables = ["Edad", "Edad meses"])
descr_numericas<jupyter_output><empty_output><jupyter_text>7. Estadísticas descriptivas de variables categóricasEl método DescripcionCategoricas calcula la frecuencia, tanto en número como en porcentaje del total de filas, de los valores de las variables que se consideran numéricas. Las variables se consideran categóricas si contienen valores limitados. Por defecto, el máximo número de categorías es 30 y las categorías no pueden representar más del 50% del total de filas de la columna. Estos valores se pueden modificar en los parámetros "limite" y "categoriasMaximas" del método "DescripcionCategoricas". Es posible también especificar si las variables numéricas con pocos valores se quieren incluir en el análisis. Por ejemplo, variables que contienen únicamente los números 1 y 2. Para agregar las variables al análisis, se asigna el valor True al parámetro incluirNumericas (el cual está por defecto) y False si no se desean incluir.Por último, es posible agregar una lista limitada de variables al análisis, asignando una lista de Python con las variables al parámetro "variables"El ejemplo abajo muestra cómo se calculan las frecuencias de categorías de variables categóricas con los parámetros del método DescripcionCategoricas por defecto<jupyter_code>descr_categoricas = datos_covid.DescripcionCategoricas(limite=0.5, 
                                                       categoriasMaximas=30, 
                                                       incluirNumericos=True, 
                                                       variables=None)
descr_categoricas<jupyter_output><empty_output><jupyter_text>8. Peso de las variables en la memoria RAMPara calcular cuál es el peso de cada variable, se utiliza el método "Memoria", como se muestra en el ejemplo abajo. El parámetro "unidad" indica que se quiere calcular en Mega Bytes ("Mb") y el parámetro "col" indica que se calcula para cada variable. En caso de desear calcular el peso total del conjunto de datos, se asigna False al parámetro "col".<jupyter_code>peso_memoria = datos_covid.Memoria(col=True, unidad="Mb")
peso_memoria<jupyter_output><empty_output><jupyter_text>9 Correlación entre variables numéricasEl método "CorrelacionNumericas" calcula una matriz de correlación entre las variables numéricas del conjunto de datos.El parámetro "metodo" especifica si se desea calcular las correlaciones con el método Pearson ("pearson"), Kendall ("kendall") o Spearman ("spearman")El ejemplo abajo muestra la matriz de correlación para variables numéricas del conjunto de datos de COVID-19<jupyter_code>corr_numericas = datos_covid.CorrelacionNumericas(metodo="pearson", variables=None)
corr_numericas<jupyter_output><empty_output><jupyter_text>10. Correlación de variables categóricasEl método "CorrelacionCategoricas" calcula una matriz de correlación para variables categóricas. Contiene los mismos parámetros que se explicaron en la Sección 7, para definir variables categóricas, pero incluye también el parámetro "metodo". Este especifica si se quiere calcular la matriz con el método Cramer ("cramer") o con la metodología Phik ("phik"), de la librería Phik de Python.A continuación se calcula la matriz de correlación de variables categóricas para el conjunto de datos de COVID-19<jupyter_code>corr_categoricas = datos_covid.CorrelacionCategoricas(metodo="phik")
corr_categoricas<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.04704501813526776, 'fraction_numerical': 0.005547258374226584, 'mean_word_length': 5.394952251023192, 'pattern_counts': {'":': 0, '<': 51, '<?xml version=': 0, '>': 51, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '13', 'dir': 'jupyter-structured-clean-dedup', 'id': '386319', 'license': 'X11', 'n_tokens_mistral': 3042, 'n_tokens_neox': 3032, 'n_words': 1105, 'path': 'ejemplos/ejemplo_calidad_datos.ipynb', 'repo_name': 'ucd-dnp/leila', 'size': '9374'}