missing_data_example_df = pd.DataFrame.from_dict(dict( x =[1,3,"NA",-99,-98,-99], y =["A","N/A","NA","E","F","G"], z =[-100,-99,-98,-101,-1,-1]))
missing_data_example_df
Buscando valores faltantes con la funcion number_missing()
missing_data_example_df.missing.number_missing()-->0# arroja cero debido a que no reconoce los diferentes tipos de datos faltantes
Conocer las columnas donde hay valores faltantes mediante el tipo de dato
missing_data_example_df.dtypes
--> x object y object z int64
dtype:object# La columna x solo tiene 1 string y pandas reconoce toda la columna como object# por tanto se intuye que en dicha columna existen valores faltantes
Detectar valores faltantes revisando valores unicos de los datos
missing_data_example_df.x.unique()--> array([1,3,'NA',-99,-98], dtype=object)# solamente puedes revisar columna por columna y sirve para dataframe pequeños
Detectar valores faltantes revisando los valores unicos de las variables de un determinado tipo
( missing_data_example_df
.select_dtypes(object).apply(pd.unique))--> x [1,3, NA,-99,-98] y [A, N/A, NA, E, F, G] dtype:object# selecciona las variables de tipo object y regresa sus valores unicos
Sustituyendo valores comunmente asociados a valores faltantes
Sustitucion desde la lectura de los datos
pd.read_csv('./data/missing_data_enconding_example.csv', na_filter=True, na_values=[-99,-1])# sustituye los valores -99 y -1 por nan desde el archivo raiz# de esta manera pandas detecta que son valores faltantes
Sustitucion Global
( missing_data_example_df
.replace( to_replace=[-99,'NA'], value= np.nan
))# sustituye todos los valores -99 y NA por nan desde el dataframe
Sustitucion Dirigida
( missing_data_example_df
.replace( to_replace={'x':{-99:np.nan
}}))# Sustituye los valores -99 por nan solo en la variable x del dataframe
Hola muchas gracias.
excelnte complemento para aprender del video
Creo que a la hora de reemplazar los datos es mejor revisar por columna y hacer un reemplazo con más control, pues a pesar de tardar más tiempo se pueden adaptar a las condiciones de cada columna de datos.
A mi me parece ùtil aplicar estos reemplazo masivos cuando tienes un dataset muy muy grande. De lo contrariio, es posible hacerlo a mano.
Tambien se puede apoyar en expresiones regulares para escarbar en busca de valores faltantes que sean colocados de manera rara. Pero esto conllevaria a una creacion generalmente unica por columna, ya que podria en una variable aplicar y en otra no.
Exacto! Gracias!
es mi impresión o el curso en verdad empieza desde acá?
las 7 primeras clases me parecieron el tipico tutorial de python de
tutorial de como hacer x cosa
import x cosa
Le pones x2 y se hace más fácil 😅
¿Alguien más que se haya sorprendido de no ver en la lista a estos dos personajes? :
"NaN","nan"
También, lo raro es no ver
"Unknown" o "unknown"
'Desconocido'
"Dato no encontrado"
Estos son datos que se pueden encontrar si también trabajas en un entorno con personas en Español.
Esta es una de esas clases en la que no paras de pensar:
" raioz, era así de fácil entonces? " xd
Muy interesante este otro tipo de manera en que las personas escriben cuando no tienen el dato, otro caso es explorar los datos con criterio conociendo que se busca, por ejemplo un dato negativo hablando de tiempo no tiene sentido, entonces también serian datos de tener cuidado.
common_na_strings =('missing','NA','N A','#N/A','NA ',' NA','N /A','N / A',' N / A ','na')
Valores faltantes = Fuc. k
La codificación de valores faltantes en un conjunto de datos es una parte importante del preprocesamiento de datos antes de realizar análisis o entrenar modelos. Hay varias estrategias para manejar los valores faltantes dependiendo del contexto y de los datos en cuestión. A continuación te explico algunas técnicas comunes usando pandas para la codificación y manejo de valores faltantes.
### 1. **Eliminar los valores faltantes**
- Si los valores faltantes son pocos, puedes eliminarlos de forma segura sin perder información relevante.
```python
import pandas as pd
# Cargar un DataFrame de ejemplo
df = pd.DataFrame({
'Producto': ['A', 'B', 'C', 'D', 'E'],
'Precio': [100, 200, None, 150, None]
})
# Eliminar filas con valores faltantes
df_clean = df.dropna()
print(df_clean)
```
### 2. **Rellenar valores faltantes con un valor específico (imputación simple)**
- Puedes rellenar los valores faltantes con un valor como la media, mediana, moda o un número fijo.
```python
# Rellenar valores faltantes con la media de la columna 'Precio'
### 6. **Imputación con técnicas avanzadas (KNN, Regresión, etc.)**
- Herramientas más avanzadas como **K-Nearest Neighbors (KNN)** o regresión pueden ser utilizadas para imputar valores faltantes basados en otras variables. Para esto, puedes usar bibliotecas como sklearn.
El enfoque más adecuado para manejar los valores faltantes depende del contexto del problema, la cantidad de datos faltantes, y la naturaleza de los datos. Puedes combinar varias estrategias según tus necesidades para asegurar que los valores faltantes no afecten negativamente el análisis o modelo.
Si quieres ejemplos más específicos de cómo aplicar estas técnicas a tus datos, ¡házmelo saber!
En estas clases siento que aprendo más de Python y su entorno que del tema en sí. Me encanta.
impresionante!
¿Por que aveces se abren corchetes para escribir el código?
Como parte de la sintaxis para organizar el código de manera legible.
import pandas as pd
missing_data_example_df = pd.DataFrame.from_dict(dict( X =[1,3,"NA",-99,-98,-99], y =["A","N/A","NA","E","F","G"], z =[-100,-99,-98,-101,-1,-1]))missing_data_example_df