CursosEmpresasBlogLiveConfPrecios

Codificación de valores faltantes

Clase 8 de 21 • Curso de Manejo de Datos Faltantes: Detección y Exploración

Clase anteriorSiguiente clase

Contenido del curso

Introducción a los valores faltantes
  • 1
    ¿Por qué explorar y lidiar con valores faltantes?

    ¿Por qué explorar y lidiar con valores faltantes?

    06:59
  • 2
    Operaciones con valores faltantes

    Operaciones con valores faltantes

    13:52
  • 3
    Conociendo datasets para manejo de datos faltantes

    Conociendo datasets para manejo de datos faltantes

    09:01
  • 4

    Ejecución de Notebooks en Deepnote con %run

    01:07
  • 5
    Extendiendo la API de Pandas

    Extendiendo la API de Pandas

    14:03
  • 6
    Tabulación de valores faltantes

    Tabulación de valores faltantes

    16:58
  • 7
    Visualización de valores faltantes

    Visualización de valores faltantes

    12:04
Manipulación inicial de valores faltantes
  • 8
    Codificación de valores faltantes

    Codificación de valores faltantes

    13:10
  • 9
    Conversión de valores faltantes implícitos en explícitos

    Conversión de valores faltantes implícitos en explícitos

    08:57
  • 10
    Exponer filas faltantes implícitas en explícitas

    Exponer filas faltantes implícitas en explícitas

    07:59
  • 11
    Tipos de valores faltantes

    Tipos de valores faltantes

    05:51
  • 12
    MCAR, MAR, MNAR en Python

    MCAR, MAR, MNAR en Python

    08:51
Búsqueda de relaciones de valores faltantes
  • 13
    Matriz de sombras: shadow matrix

    Matriz de sombras: shadow matrix

    14:34
  • 14
    Visualización de valores faltantes en una variable

    Visualización de valores faltantes en una variable

    10:06
  • 15
    Visualización de valores faltantes en dos variables

    Visualización de valores faltantes en dos variables

    10:00
  • 16
    Scatterplot con valores faltantes

    Scatterplot con valores faltantes

    09:42
  • 17
    Correlación de nulidad

    Correlación de nulidad

    07:00
Tratamiento de valores faltantes
  • 18
    Eliminación de valores faltantes: pairwise y listwise

    Eliminación de valores faltantes: pairwise y listwise

    14:28
  • 19
    Imputación básica de datos

    Imputación básica de datos

    10:53
  • 20
    Bonus: visualización múltiple de imputaciones

    Bonus: visualización múltiple de imputaciones

    07:50
Cierre de curso
  • 21
    Continúa aprendiendo sobre el manejo de valores faltantes

    Continúa aprendiendo sobre el manejo de valores faltantes

    03:21
    Jeinfferson Bernal G

    Jeinfferson Bernal G

    student•
    hace 3 años

    Codificacion de valores Faltantes

    Asumir que los datos faltantes siempre vendran en un unico formato es un error.

    Algunas formas en que se representa los datos faltantes son: NA, N/A, na, Missing, -1, -77, no available

    • Valores comunmente asociados a valores faltantes. Cadenas de texto
    common_na_strings = ( "missing", "NA", "N A", "N/A", "#N/A", "NA ", " NA", "N /A", "N / A", " N / A", "N / A ", "na", "n a", "n/a", "na ", " na", "n /a", "n / a", " a / a", "n / a ", "NULL", "null", "", "?", "*", ".", )
    • Valores comunmente asociados a valores faltantes. Numeros
    common_na_numbers = (-9, -99, -999, -9999, 9999, 66, 77, 88, -1)
    • DataFrame con valores faltantes
    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
    graph13.jpg
    • 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
    graph14.jpg
    • 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
    graph15.jpg
      JULIO ALFONSO MESA PÉREZ

      JULIO ALFONSO MESA PÉREZ

      student•
      hace 2 años

      Hola muchas gracias.

      Juan José Mamani Tarqui

      Juan José Mamani Tarqui

      student•
      hace 2 años

      excelnte complemento para aprender del video

    David Duque Uribe

    David Duque Uribe

    student•
    hace 3 años

    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.

      Javier Guevara

      Javier Guevara

      student•
      hace 3 años

      A mi me parece ùtil aplicar estos reemplazo masivos cuando tienes un dataset muy muy grande. De lo contrariio, es posible hacerlo a mano.

    Alfonso Andres Zapata Guzman

    Alfonso Andres Zapata Guzman

    student•
    hace 3 años

    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.

      Pablo Alejandro Figueroa

      Pablo Alejandro Figueroa

      student•
      hace 2 años

      Exacto! Gracias!

    Andres felipe Rojas parra

    Andres felipe Rojas parra

    student•
    hace 3 años

    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

      Leandro Tenjo

      Leandro Tenjo

      student•
      hace 2 años

      Le pones x2 y se hace más fácil 😅

    Alejandro Marmolejo Gutiérrez

    Alejandro Marmolejo Gutiérrez

    student•
    hace 3 años

    ¿Alguien más que se haya sorprendido de no ver en la lista a estos dos personajes? :

    "NaN", "nan"
      Neicer Vásquez

      Neicer Vásquez

      student•
      hace un año

      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.

    KEYRUN MESTRE ZALABATA

    KEYRUN MESTRE ZALABATA

    student•
    hace 3 años

    Esta es una de esas clases en la que no paras de pensar: " raioz, era así de fácil entonces? " xd

    David Duque Uribe

    David Duque Uribe

    student•
    hace 3 años

    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' )
    Julián Cárdenas

    Julián Cárdenas

    student•
    hace 2 años

    Valores faltantes = Fuc. k

    Mario Alexander Vargas Celis

    Mario Alexander Vargas Celis

    student•
    hace un año

    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'

    df['Precio'] = df['Precio'].fillna(df['Precio'].mean())

    print(df)

    ```

    - **Rellenar con un valor fijo**:

    ```python

    # Rellenar valores faltantes con 0

    df['Precio'] = df['Precio'].fillna(0)

    ```

    ### 3. **Interpolación de valores faltantes**

    - La interpolación estima valores faltantes utilizando el patrón de los datos adyacentes.

    ```python

    # Rellenar valores faltantes usando interpolación

    df['Precio'] = df['Precio'].interpolate()

    print(df)

    ```

    ### 4. **Codificación de valores faltantes con un marcador**

    - A veces, en lugar de imputar, es útil codificar los valores faltantes con un marcador (ej. 'Desconocido' o 'Sin datos').

    ```python

    # Rellenar valores faltantes con una cadena 'Desconocido'

    df['Producto'] = df['Producto'].fillna('Desconocido')

    print(df)

    ```

    ### 5. **Codificación con etiquetas binarias**

    - Puedes crear una columna binaria adicional que marque si un valor estaba o no ausente en una columna original.

    ```python

    # Crear una columna binaria que indica si el valor estaba ausente

    df['Faltante_Precio'] = df['Precio'].isnull().astype(int)

    print(df)

    ```

    ### 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.

    ```python

    from sklearn.impute import KNNImputer

    # Ejemplo de imputación usando KNN

    imputer = KNNImputer(n_neighbors=2)

    df[['Precio']] = imputer.fit_transform(df[['Precio']])

    print(df)

    ```

    ### Conclusión:

    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!

    Antonio Demarco Bonino

    Antonio Demarco Bonino

    student•
    hace un año

    En estas clases siento que aprendo más de Python y su entorno que del tema en sí. Me encanta.

    Pablo Alejandro Figueroa

    Pablo Alejandro Figueroa

    student•
    hace 2 años

    impresionante!

    David Sánchez lombana

    David Sánchez lombana

    student•
    hace 3 años

    ¿Por que aveces se abren corchetes para escribir el código?

      Naren Fragozo

      Naren Fragozo

      student•
      hace 3 años

      Como parte de la sintaxis para organizar el código de manera legible.

    IVAN RUBEN DIAZ RAMIREZ

    IVAN RUBEN DIAZ RAMIREZ

    student•
    hace 4 meses
    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

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads