No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

17 Días
17 Hrs
10 Min
25 Seg

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

9/21
Recursos

Aportes 13

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Estrategia para la identificacion de valores faltantes implicitos

  • Pivotar la tabla de datos. Pivotar es tomar una columna de referencia sobre la cual se quiere extender sus categorias de manera que muestre una nueva visualizacion de los datos
(
    implicit_to_explicit_df
    .pivot_wider(
        index="name",        # variable nombre como filas
        names_from="time",   # variable time como columnas
        values_from="value"  # variable value como valores de la tabla
    )
)
  • Cuantificar ocurrencias de N-tuplas
(
    implicit_to_explicit_df
    .value_counts(
        subset=["name"]   # cuenta los valores asociados a los nombres
    )
    .reset_index(name="n")  # asigna n como indice del conteo
    .query("n < 3")         # condicion a cumplir por n para que se muestre en la tabla
)

Algo curioso es que por mi parte no encontre la funcion .

pivot_wider 

Pero la que si enocontre fue la sieguiente, donde lo unico que cambia es que el campo names_from se llama colums y el campo values_from se llama values.

pd.pivot(data = implicit_to_explicit_df,
    index="name",        # variable nombre como filas
    columns="time",   # variable time como columnas
    values="value"  # variable value como valores de la tabla
)

Implícito se refiere a todo aquello que se entiende que está incluido
pero sin ser expresado de forma directa o explícitamente.”

Un valor faltante implícito indica que el valor faltante debería estar incluido en el conjunto de datos del análisis, sin que éste lo diga o lo especifique. Por lo general, son valores que podemos encontrar al pivotar nuestros datos o contabilizar el número de apariciones de combinaciones de las variables de estudio.

Esta clase me dejo viendo el mundo de otra forma jajajaja

Dataframe de valores implícitos:

implicit_to_explicit_df = pd.DataFrame.from_dict(
    data={
        "name": ["lynn", "lynn", "lynn", "zelda"],
        "time": ["morning", "afternoon", "night", "morning"],
        "value": [350, 310, np.nan, 320]
    }
)

implicit_to_explicit_df

📢 Explícito y implícito

  • “Explícito” es algo que se dice o se muestra de manera clara y directa, sin dejar lugar a dudas. Es decir, es algo que se expresa abiertamente y sin rodeos.
  • Por otro lado, “implícito” se refiere a algo que no se dice o se muestra de forma directa, sino que se da a entender de manera indirecta o sugerida. Es decir, es algo que no está explícitamente expresado, pero se puede deducir o inferir a partir de lo que se dice o se muestra.

Por ejemplo

Si te digo “tengo hambre, ¿quieres ir a comer algo conmigo?”, la invitación a comer algo es explícita, ya que se dice de manera directa. Pero si te digo “tengo hambre, qué bien huele ese restaurante”, la invitación no está expresada de forma directa, pero se puede entender implícitamente que te estoy invitando a comer en ese restaurante.

Con seguridad en algún momento necesitarán realizar lo contrario a un pivotaje, pues la mayoría de algoritmos requiere la computación explicita de 2 variables. Esto puede hacerse con pd.melt. ```js pd.melt( itoe_pivoted.reset_index(), id_vars = ["name"], value_vars = ["afternoon", "morning", "night"] ) ``` El resultado es el siguiente: ![](https://static.platzi.com/media/user_upload/imagen-49e9f9e3-affa-4204-a248-027ed8114b09.jpg)
La \*\*conversión de valores faltantes implícitos en explícitos\*\* es una técnica para transformar valores "ocultos" o "implícitos" que pueden representar la falta de datos en un formato claro y explícito dentro de un DataFrame. Los valores faltantes implícitos son aquellos que no se encuentran explícitamente como `NaN` pero representan una ausencia o falta de datos por otras razones, como valores de cero, valores negativos, cadenas vacías, o un valor especial. \### Ejemplos comunes de valores faltantes implícitos: \- \*\*Cadenas vacías\*\* (`''`) \- \*\*Valores de 0\*\* en contextos donde el 0 no tiene un significado válido. \- \*\*Valores negativos\*\* que representan datos faltantes. \- \*\*Códigos especiales\*\* como `-1` o `9999` para indicar que no hay datos. \### Proceso para convertir valores faltantes implícitos en explícitos (`NaN`): \#### 1. \*\*Convertir cadenas vacías o específicas en NaN:\*\* Si tienes cadenas vacías o un valor especial que representa datos faltantes, puedes convertirlos en `NaN`. ```python import pandas as pd import numpy as np \# Crear un DataFrame con valores faltantes implícitos df = pd.DataFrame({ 'Producto': \['A', '', 'C', 'D', ''], 'Precio': \[100, 0, -1, 150, 200] }) \# Convertir cadenas vacías ('') en NaN df\['Producto'] = df\['Producto'].replace('', np.nan) print(df) ``` Salida: ``` Producto Precio 0 A 100 1 NaN 0 2 C -1 3 D 150 4 NaN 200 ``` \#### 2. \*\*Convertir valores numéricos especiales en NaN:\*\* A veces, ciertos valores numéricos (como 0 o -1) pueden representar valores faltantes implícitos en tu conjunto de datos. ```python \# Convertir valores especiales (0 y -1) en NaN df\['Precio'] = df\['Precio'].replace(\[0, -1], np.nan) print(df) ``` Salida: ``` Producto Precio 0 A 100.0 1 NaN NaN 2 C NaN 3 D 150.0 4 NaN 200.0 ``` \#### 3. \*\*Utilizar condiciones para identificar valores faltantes implícitos:\*\* En algunos casos, necesitarás aplicar condiciones para definir cuándo un valor debe considerarse faltante. ```python \# Suponer que los valores menores a 0 son valores faltantes implícitos df\['Precio'] = df\['Precio'].apply(lambda x: np.nan if x < 0 else x) print(df) ``` \#### 4. \*\*Uso de `replace()` para convertir múltiples valores en NaN:\*\* La función `replace()` también permite reemplazar varios valores que consideres implícitamente faltantes con `NaN`. ```python \# Reemplazar valores de -1 y 0 en la columna 'Precio' con NaN df\['Precio'] = df\['Precio'].replace(\[-1, 0], np.nan) print(df) ``` \#### 5. \*\*Uso de `mask()` para crear condiciones complejas:\*\* La función `mask()` permite definir condiciones lógicas más avanzadas para identificar valores faltantes. ```python \# Reemplazar valores mayores a 100 con NaN (ejemplo condicional) df\['Precio'] = df\['Precio'].mask(df\['Precio'] > 100) print(df) ``` \### Resumen: La conversión de valores faltantes implícitos en explícitos permite mejorar la calidad de los datos y facilita el análisis. Hacer explícitos los valores faltantes con `NaN` facilita el uso de las herramientas de Pandas para manejar valores nulos, como `fillna()`, `dropna()`, o cualquier técnica de imputación o filtrado. Si tienes un caso más específico, ¡puedo ayudarte con una solución detallada!
Por si les sale el warning: ``` FutureWarning: This function will be deprecated in a 1.x release. Please use `pd.DataFrame.pivot` instead. return method(self.\_obj, \*args, \*\*kwargs) ``` Les paso el código con pivot: ``` implicit\_to\_explicit\_df.pivot(index='name', columns='time', values='value').reset\_index() ```
Por si les da el warning ```js FutureWarning: This function will be deprecated in a 1.x release. Please use `pd.DataFrame.pivot` instead. return method(self._obj, *args, **kwargs) ```Les paso el código con pivot ```js implicit_to_explicit_df.pivot(index='name', columns='time', values='value').reset_index() ```

genial!

excelente

Como pivotar la tabla de datos

(
    implicit_to_explicit_df
    .pivot_wider(
        index="name", # mantenerlos como id's de cada fila
        names_from="time", # valores a crear como col's
        values_from="value" # quermos rellenarlo y toma los valores de la colunma...
    )
) 

Cuantificar ocurrencias de n-tuplas

Ventaja: se puede combinar las variables que quieras( no siempre será una matriz)