CursosEmpresasBlogLiveConfPrecios

Exponer filas faltantes implícitas en explícitas

Clase 10 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
    • Exponer N tuplas de valores faltantes. Encontrar los pares faltantes de name y time
    # Rellena los datos faltantes que le indiquemos ( implicit_to_explicit_df # janitor .complete( "name", "time" ) )
    graph18.jpg
    • Limitar la exposicion de N tuplas de valores faltantes
    # limitar los datos que quieres mostrar ( implicit_to_explicit_df .complete( # formato diccionario con as variables y valores a mostrar {'name': ['lynn', 'zelda']}, {'time': ['morning', 'afternoon']}, sort=True # ordena los valores de manera que primero muestra los pasados y luego el resto ) )
    graph19.jpg
    • Rellenar los valores faltantes
    ( implicit_to_explicit_df .complete( 'name', 'time', fill_value= np.nan # puedes asignar el valor que desees. Por defecto asigna nan ) )
    graph20.jpg
    • Limitar el rellenado de valores faltantes implicitos
    ( implicit_to_explicit_df .complete( 'name', 'time', fill_value=0, explicit=False ) )
    graph21.jpg
    Naren Fragozo

    Naren Fragozo

    student•
    hace 3 años

    La librería de Janitor es una librería de Python que proporciona un conjunto de funciones útiles para limpiar y preparar datos en Pandas. Esta biblioteca está diseñada para ayudar en la preparación de datos para el análisis, lo que puede ahorrar tiempo y reducir errores. Algunas de las funciones más utilizadas de Janitor en Pandas incluyen.

    • clean_names(): esta función se utiliza para limpiar y estandarizar los nombres de las columnas en un DataFrame. Elimina espacios, caracteres especiales y convierte los nombres de las columnas a minúsculas.

    • remove_empty() y remove_na(): estas funciones se utilizan para eliminar filas y columnas que contengan valores faltantes o nulos.

    • coalesce(): esta función se utiliza para reemplazar los valores nulos o faltantes en una columna con otro valor especificado.

    • expand_column(): esta función se utiliza para dividir una columna en múltiples columnas utilizando un separador específico.

    • get_dupes(): esta función se utiliza para identificar filas duplicadas en un DataFrame.

    - **groupby_summarize():** esta función se utiliza para agrupar los datos en un DataFrame y calcular estadísticas resumidas, como la media, la suma o la desviación estándar.
    - **pivot_longer() y pivot_wider():** estas funciones se utilizan para transformar un DataFrame de formato ancho a formato largo o viceversa.

    En resumen, la librería de Janitor es una herramienta útil para preparar y limpiar datos en Pandas. Sus funciones son útiles para estandarizar nombres de columnas, eliminar filas y columnas con valores faltantes, identificar filas duplicadas y realizar transformaciones de formato en los datos.

    Alberto Duque Villegas

    Alberto Duque Villegas

    student•
    hace 2 años

    ¿Por qué se sigue proponiendo trabajar en DeepNote cuando en algunos PC´s corre demasíado lento y el curso se vuelve un dolor de cabeza?

    Por mi parte, estoy trabajando en Colab de Google y funciona a las mil maravillas.

    Ian Cristian Ariel Yané

    Ian Cristian Ariel Yané

    student•
    hace 2 años

    A alguien mas le aparece este error?:

    • AttributeError: 'DataFrame' object has no attribute 'complete'
    Jeinfferson Bernal G

    Jeinfferson Bernal G

    student•
    hace 3 años

    Muy interesante la clase y la libreria janitor

    Mauricio Escobar

    Mauricio Escobar

    student•
    hace un año

    En mi caso para hacerlo más interesante, quise rellenar los nulos en función de los patrones observados en el dataframe:

    • patrón observado: mientras pasa el día, el poder se reduce 40 puntos (asumiendo que este compotamiendo está estandarizado para todo el dataset)
    #df_pivoted = df_botw_explicit.pivot(index='name', columns='time', values='power').reset_index() def fill_power(row): if pd.notna(row['morning']): if pd.isna(row['afternoon']): row['afternoon'] = row['morning'] - 40 if pd.isna(row['night']): row['night'] = row['afternoon'] - 40 if pd.notna(row['afternoon']): if pd.isna(row['morning']): row['morning'] = row['afternoon'] + 40 if pd.isna(row['night']): row['night'] = row['afternoon'] - 40 if pd.notna(row['night']): if pd.isna(row['afternoon']): row['afternoon'] = row['night'] + 40 if pd.isna(row['morning']): row['morning'] = row['afternoon'] + 40 return row df_fill = df_pivoted.apply(fill_power, axis= 1) df_complete = df_fill.melt(id_vars= ['name'], value_vars= ['morning', 'afternoon', 'night'], var_name= 'time', value_name= 'power') df_complete = df_complete.sort_values(by= ['name', 'time']).reset_index(drop= True) ```![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-07-16%20a%20la%28s%29%205.02.59p.m.-3e3371ce-1c0f-448b-9d7e-5d364a2bed33.jpg)
      Mauricio Escobar

      Mauricio Escobar

      student•
      hace un año

      Ok, va el resultado otra vez:

    Nixon Rolando García Ramírez

    Nixon Rolando García Ramírez

    student•
    hace 3 años

    Bueno, no se si lo que voy a comentar es de conocimiento general, pero yo estoy usando pycharm y para instalarlo realize el siguiente codigo en conda:

    conda install pyjanitor -c conda-forge

    Y con pip (ambientes virtuales ) es con:

    pip3 install pyjanitor

    Siendo mi error que escribir janitor como si ese fuera el nombre del paquete porque cuando uno lo importa lo importa como:

    import janitor
    Mario Alexander Vargas Celis

    Mario Alexander Vargas Celis

    student•
    hace un año

    **Exponer filas faltantes implícitas en explícitas** se refiere a identificar y hacer explícitas las filas que, aunque no tengan valores NaN visibles, están incompletas o contienen información que representa datos faltantes de forma implícita. Este tipo de situación ocurre cuando ciertos valores tienen un significado especial que indica una ausencia de datos, o cuando una combinación de valores sugiere que faltan datos.

    ### Proceso para exponer filas faltantes implícitas en explícitas:

    1. **Identificación de filas faltantes implícitas:**

    Las filas que contienen valores implícitos faltantes suelen tener valores como 0, -1, o cadenas vacías (''). Estas filas pueden necesitar ser convertidas en explícitas.

    2. **Uso de mask() o apply() para detectar condiciones implícitas:**

    Si sabes qué condiciones representan datos faltantes, puedes usar estas funciones para transformar los datos y hacer los valores explícitos (NaN).

    3. **Crear nuevas filas o marcar datos incompletos con NaN:**

    Utilizando mask(), apply(), o replace() para convertir esas filas implícitas en explícitas, reemplazando valores o filas enteras con NaN.

    ### Ejemplo práctico:

    Supongamos que tienes un DataFrame donde los valores faltantes están representados de forma implícita, como valores 0 o -1 en la columna de precios o productos vacíos.

    import pandas as pd import numpy as np \# Ejemplo de DataFrame con valores faltantes implícitos data = {'Producto': \['A', 'B', 'C', 'D', 'E'], &#x20; 'Cantidad': \[10, 0, 5, -1, 8], &#x20; 'Precio': \[100, 0, -1, 150, 0]} df = pd.DataFrame(data) print("DataFrame original:") print(df) \# Definir condiciones implícitas para filas faltantes \# Suponemos que 'Cantidad' o 'Precio' con 0 o -1 representan valores faltantes df\_masked = df.mask((df\['Cantidad'] <= 0) | (df\['Precio'] <= 0)) print("\nDataFrame con filas faltantes explícitas:") print(df\_masked)

    ### Salida esperada:

    DataFrame original: &#x20; Producto Cantidad Precio 0 A 10 100 1 B 0 0 2 C 5 -1 3 D -1 150 4 E 8 0 DataFrame con filas faltantes explícitas: &#x20; Producto Cantidad Precio 0 A 10.0 100.0 1 B NaN NaN 2 C 5.0 NaN 3 D NaN 150.0 4 E 8.0 NaN

    ### Explicación:

    1. **Identificación de valores implícitos:** Hemos definido que los valores 0 o -1 en las columnas Cantidad y Precio son faltantes de forma implícita.

    2. **Uso de mask():** La función mask() aplica la condición y reemplaza los valores que cumplen con NaN.

    3. **Exposición explícita:** Ahora, los valores que estaban implícitamente faltantes (como 0 o -1) se muestran como NaN, haciendo evidente qué datos están faltando.

    ### Resumen de técnicas para identificar y exponer filas faltantes implícitas:

    - **mask()**: Para identificar y reemplazar valores que cumplen con una condición específica.

    - **apply()**: Para aplicar una función personalizada fila por fila para determinar si una fila es faltante de forma implícita.

    - **replace()**: Para reemplazar valores específicos en el DataFrame.

    - **isnull() y notnull()**: Para comprobar si los datos contienen valores explícitamente faltantes.

    Este proceso facilita el análisis posterior y asegura que las técnicas para manejar datos faltantes se apliquen correctamente.

    Pablo Alejandro Figueroa

    Pablo Alejandro Figueroa

    student•
    hace 2 años

    genial!

    Nestor Colmenarez

    Nestor Colmenarez

    student•
    hace 2 años

    🙋‍♂️Si tienes problemas importando alguna de las librerias, te recomiendo leer este aporte hecho en una clase anterior:

    https://platzi.com/comentario/4958456/

    Julián Cárdenas

    Julián Cárdenas

    student•
    hace 2 años

    Limitar el rellenado de valores faltantes implícitos

    ( implicit_to_explicit_df .complete( {"name": ["lynn", "zelda"]}, {"time": ["morning", "afternoon"]}, sort = True ) )
    ( implicit_to_explicit_df .complete( "name", "time", fill_value= "nan" ) )
    ( implicit_to_explicit_df .complete( "name", "time", fill_value= 99, explicit=False ) )

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