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"))
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))
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))
Limitar el rellenado de valores faltantes implicitos
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.
¿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.
A alguien mas le aparece este error?:
AttributeError: 'DataFrame' object has no attribute 'complete'
Muy interesante la clase y la libreria janitor
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)
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
**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'],  'Cantidad': \[10, 0, 5, -1, 8],  '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: ProductoCantidadPrecio0A101001B002C5-13D-11504E80DataFrame con filas faltantes explícitas: ProductoCantidadPrecio0A10.0100.01BNaNNaN2C5.0NaN3DNaN150.04E8.0NaN
### 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.
genial!
🙋♂️Si tienes problemas importando alguna de las librerias, te recomiendo leer este aporte hecho en una clase anterior: