Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Analisis de Datos M3 AE4 v2
Analisis de Datos M3 AE4 v2
Aprendizaje Esperado 4
Aprendizaje Esperado 4
Manejo de valores perdidos
Aprendizaje Esperado 4
Aplica técnicas de limpieza y preparación de datos utilizando librerías
Python para su depuración.
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Contexto
El manejo de valores perdidos es una parte crucial en el análisis de datos,
ya que los datos incompletos son una realidad común en conjuntos de
datos del mundo real. Estos valores perdidos pueden surgir por diversas
razones, como errores de entrada, equipos defectuosos o simplemente la
falta de información. Python, en combinación con bibliotecas como
Pandas, NumPy y scikit-learn, proporciona herramientas poderosas para
identificar, manejar y tomar decisiones informadas sobre los valores
perdidos. Esto puede implicar su eliminación, imputación con valores
estimados o métodos más avanzados como el uso de modelos predictivos.
El manejo adecuado de valores perdidos es esencial para garantizar la
precisión y la integridad de los análisis de datos, y para extraer
información valiosa de conjuntos de datos que, de lo contrario, podrían
ser incompletos o inutilizables.
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Por
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
La salida sería:
np.nan, None y NaT (para los tipos datetime64 [ns]) son valores estándar
perdidos para Pandas.
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
En este resultado, puedes ver que se han detectado los valores faltantes
en las filas 1 y 2 de la columna "Edad" y en la fila 2 de la columna "Ciudad".
También puede optar por utilizar notna() que es todo lo contrario de isna().
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Luego lo importamos:
con na_values:
Otra opción es usar la función pandas replace() para manejar estos valores
después de que se crea un DataFrame.
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Su salida:
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
import pandas as pd
import numpy as np
df = pd.DataFrame({
})
print(df)
valores_perdidos = df.isna()
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
print(valores_perdidos)
conteo_perdidos = df.isna().sum()
print(conteo_perdidos)
any_perdidos = df.isna().any()
print(any_perdidos)
df_limpio = df.dropna()
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
df_limpio_columnas = df.dropna(axis=1)
df['Edad'].fillna(df['Edad'].mean(), inplace=True)
df['Ciudad'].fillna(df['Ciudad'].mode()[0], inplace=True)
Como vemos, la opción axis nos indica si eliminamos la fila del dato
faltante o la columna.
Imputación de datos
La imputación de datos es un método en el que los valores faltantes en
cualquier variable o DataFrame se rellenan con algunos valores numéricos
para realizar la tarea. Con este método, el tamaño de la muestra sigue
siendo el mismo, solo los espacios en blanco que faltaban ahora se llenan
con algunos valores. Este método es fácil de usar pero reduce la varianza
del conjunto de datos.
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Pandas nos ofrece una función (fillna) para realizar esta imputación de
manera sencilla.
Ejemplo:
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Salida:
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Salida:
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
● Calcular la distancia
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Transformación de la data
La transformación de los datos es necesaria cuando entre las variables
existen diferentes escalas o existen demasiadas o pocas variables,
entonces se realiza una normalización o una estandarización de los datos
mediante técnicas de reducción o aumento de la dimensión, así como el
escalamiento simple o multidimensional.
● Transformaciones lógicas
● Transformaciones lineales
● Transformaciones algebraicas
● Transformaciones no lineales
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Remover duplicados
Un problema con el que nos podemos encontrar de forma más frecuente
es la identificación de valores únicos en una lista. Ya que la existencia de
valores duplicados no es de interés para el análisis que se desea realizar.
Por eso, saber cómo eliminar los valores duplicados en una lista es un
truco que debemos tener en nuestro arsenal. Otro truco que también
puede ser de interés es contar el número de ocurrencias de cada valor en
una lista, lo que también se comentará en esta entrada.
unique(): Esta función se usa para obtener una serie o matriz de valores
únicos de una columna específica en un DataFrame o una serie.
Proporciona una lista de todos los valores distintos que aparecen en esa
columna sin eliminar filas duplicadas del DataFrame original.
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Ejemplo:
La salida:
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Reemplazo de valores
El reemplazo de valores en Pandas te permite modificar valores
específicos en un DataFrame o Serie de acuerdo a tus necesidades. Esto
es útil para corregir datos erróneos, cambiar etiquetas, o actualizar valores
en función de ciertas condiciones. Pandas proporciona varias formas de
realizar reemplazos, y a continuación, se describen algunas de las técnicas
comunes:
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Por ejemplo:
Renombrando columnas
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Renombrando índices
Para cambiar los nombres de los índices (ya sea de filas o columnas),
puedes utilizar el método set_index() y especificar los nuevos nombres.
Renombrando ejes
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Discretización y Binning
Los datos del mundo real tienden a ser ruidosos. Los datos ruidosos son
datos con una gran cantidad de información adicional sin sentido llamada
ruido. Las rutinas de limpieza de datos intentan suavizar el ruido mientras
identifican valores atípicos en los datos.
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Y su salida:
Si lo vemos gráficamente:
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
LIMITES: En otros casos, podemos tener valores que se escapan del “grupo
medio”, pero queremos mantener el dato modificado, para que no
perjudique al aprendizaje del modelo de ML.
Punto de Interés: puede que sean los casos “anómalos” los que queremos
detectar y que sean nuestro objetivo (¡y no nuestro enemigo!)
Uso de PyOD
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
La salida:
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
La salida:
Otro ejemplo:
Creamos el dataframe
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Ten en cuenta que, en este caso, las permutaciones son aleatorias, por lo
que cada vez que ejecutes el código, obtendrás un orden diferente de las
filas en el DataFrame permutado.
Muestreos aleatorios
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Manipulación de Strings
Ya hemos estudiado la manipulación y funciones de string en módulos
anteriores, sin embargo, haremos un repaso de las funciones más usadas
y que pueden ser de ayuda al momento de limpiar o transformar nuestros
DataFrames.
Concatenación:
Longitud:
Indexado y slicing:
Formato (f-strings):
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Expresiones Regulares
Las expresiones regulares, también conocidas como regex o regexp, son
patrones que se utilizan para realizar búsquedas y manipulaciones de
texto. Estos patrones son especialmente útiles cuando deseas buscar,
extraer o reemplazar cadenas de texto que siguen un patrón específico.
Las expresiones regulares se componen de caracteres literales y
caracteres especiales que representan clases de caracteres,
cuantificadores y más.
Por ejemplo, puedes usar una expresión regular para buscar todas las
direcciones de correo electrónico en un texto o para validar que un
número de teléfono cumple con un formato específico.
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Funciones vectorizadas
Las funciones vectorizadas son funciones que operan en arrays completos
de datos en lugar de elementos individuales. Esto permite realizar
operaciones eficientes y paralelizadas en estructuras de datos, como
arrays NumPy en Python, sin necesidad de bucles explícitos. El término
"vectorizado" se deriva de las operaciones vectoriales que son típicas en
álgebra lineal y cálculo.
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
necesidad de escribir bucles explícitos. Esto hace que el código sea más
eficiente y más legible.
Más ejemplos:
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Funcionamiento:
Función personalizada: La función que deseas aplicar debe ser una función
personalizada que toma una fila o una columna como entrada y devuelve
un valor transformado. Esta función puede ser una función definida por el
usuario o una función lambda.
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Ejemplo:
Salida:
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Referencias
● Ichi pro: Serie de limpieza de datos con python
https://ichi.pro/es/serie-de-limpieza-de-datos-con-python-
40387192062664
Módulo
Obtención y Preparación de Datos
Aprendizaje Esperado 4
Manejo de valores perdidos
Módulo
Obtención y Preparación de Datos