Manejo de Datos Faltantes en Pandas: Identificación y Tratamiento
Resumen
¿Cómo lidiar con valores faltantes en conjuntos de datos?
¿Alguna vez te has topado con un conjunto de datos lleno de valores ausentes? Estos pueden ser un verdadero rompecabezas originado por errores en la recolección de datos, problemas de almacenamiento, o simplemente por la falta de información al momento del registro. Ignorar estos vacíos puede llevar a conclusiones erróneas y malas decisiones empresariales. Aprender a identificar y gestionar los datos faltantes es fundamental para asegurar que nuestros análisis sean precisos y, sobre todo, significativos.
¿Cómo identificar datos faltantes en Pandas?
Pandas, una poderosa librería de Python para el análisis de datos, ofrece varias técnicas efectivas para detectar valores faltantes. Podemos consultar si un dato está disponible, si es nulo, y más. Aquí te mostramos cómo hacerlo con código:
import pandas as pd
# Ejemplo de dataset de retailretail_data = pd.DataFrame({'Producto':['A','B','C','D',None],'Cantidad':[10,None,30,40,50],'Precio Unitario':[1.1,2.2,3.3,4.4,5.5]})# Método para identificar valores faltantesdatos_faltantes = retail_data.isnull()print(datos_faltantes.head())
Al ejecutar este código, "True" indicará que el dato está faltante, y "False" indicará su presencia.
¿Qué estrategias existen para manejar datos faltantes?
Existen principalmente dos estrategias para tratar con los datos faltantes:
Eliminación de filas o columnas: Puedes optar por eliminar por completo aquellas filas o columnas que contienen valores ausentes. Sin embargo, ten cuidado, ya que podrías perder información valiosa.
# Eliminar filas con valores faltantesdatos_sin_filas_faltantes = retail_data.dropna()print("Datos sin filas con valores faltantes:\n", datos_sin_filas_faltantes)# Eliminar columnas con valores faltantesdatos_sin_columnas_faltantes = retail_data.dropna(axis=1)print("Datos sin columnas con valores faltantes:\n", datos_sin_columnas_faltantes)
Imputación de valores: Otra opción es llenar los espacios con valores específicos, como un número constante, la media de la columna, o cualquier otro valor que consideres apropiado.
Llenar con un número constante, como el 0:
# Llenar valores faltantes con 0retail_data_filled = retail_data.fillna(0)print(retail_data_filled)
Llenar con la media de la columna:
# Calcular la media del Precio Unitariomedia_precio_unitario = retail_data['Precio Unitario'].mean()# Llenar valores faltantes con la mediaretail_data['Precio Unitario'].fillna(media_precio_unitario, inplace=True)print(retail_data)
¿Cuándo es conveniente eliminar o imputar datos?
La decisión de eliminar o imputar los valores faltantes depende del contexto del análisis y de los fines específicos del proyecto. Si una columna tiene apenas uno o dos datos faltantes, eliminar toda la columna no sería sabio. Del mismo modo, si una fila es crucial para el análisis, completar su información podría ser mejor que descartarla.
Reflexiona sobre estas estrategias y pregúntate: ¿Cuándo resulta beneficioso eliminar filas o columnas, o quizá llenar los valores faltantes? Tu respuesta es clave para lograr un análisis más riguroso y acertado.
En conclusión, el manejo adecuado de los valores faltantes es crucial al momento de analizar un conjunto de datos. Al comprender y dominar diversas estrategias dentro de Pandas, estarás más preparado para garantizar que los resultados de tu análisis de datos sean confiables y exactos. ¡Continúa aprendiendo y afinando tus habilidades en el fascinante mundo del análisis de datos!
El manejo de **datos faltantes** es una de las tareas más comunes cuando se trabaja con conjuntos de datos en **Pandas**. Los valores faltantes suelen estar representados como NaN (Not a Number) en los DataFrames de Pandas, y hay varias formas de **identificar, eliminar o imputar** estos valores según las necesidades del análisis.
Aquí te muestro las principales técnicas y funciones para gestionar los datos faltantes:
---
### 1. **Identificación de Datos Faltantes**
Para identificar valores faltantes en un DataFrame o Serie de Pandas, puedes utilizar los siguientes métodos:
#### **isnull() y notnull()**
- **isnull()**: Devuelve True para cada celda que contenga un valor nulo (NaN).
- **notnull()**: Devuelve True para cada celda que **no** sea nula.
import pandas as pd
import numpy as np
\# Crear un DataFrame con valores faltantes
data ={'Nombre': \['Ana','Luis', np.nan],  'Edad': \[23, np.nan, 36],  'Ciudad': \['Madrid', 'Barcelona', 'Valencia']}df = pd.DataFrame(data)
\# Identificar valores faltantes
print(df.isnull())
\# Identificar valores que no son faltantes
print(df.notnull())
---
### 2. **Eliminación de Datos Faltantes**
Si decides eliminar las filas o columnas con datos faltantes, Pandas ofrece varias formas de hacerlo.
#### **dropna()**
Este método elimina filas o columnas que contienen valores nulos.
\# Eliminar todas las filas que tienen al menos un valor faltante
df\_sin\_na\_filas = df.dropna()
\# Eliminar columnas que tienen al menos un valor faltante
df\_sin\_na\_columnas = df.dropna(axis=1)
\# Eliminar solo las filas en las que todos los valores son nulos
df\_sin\_na\_filas\_todos = df.dropna(how='all')
\# Eliminar filas solo si tienen más de un valor nulo
df\_sin\_na\_thresh = df.dropna(thresh=2)
- axis=0: Elimina las filas (esto es predeterminado).
- axis=1: Elimina las columnas.
- how='any': Elimina la fila o columna si **cualquier** valor es nulo (por defecto).
- how='all': Elimina la fila o columna si **todos** los valores son nulos.
- thresh=N: Requiere que la fila o columna tenga al menos N valores no nulos para no ser eliminada.
---
### 3. **Rellenar Datos Faltantes**
En lugar de eliminar los datos, a veces es mejor **rellenar** los valores faltantes con una aproximación. Esto es conocido como **imputación de datos**.
#### **fillna()**
Rellena los valores nulos con un valor específico.
\# Rellenar los valores faltantes con un valor constante
df\_rellenado = df.fillna(0)\# Rellenar los valores faltantes con el valor anterior (forward fill)df\_forward\_fill = df.fillna(method='ffill')\# Rellenar los valores faltantes con el valor siguiente (backward fill)df\_backward\_fill = df.fillna(method='bfill')
\# Rellenar los valores faltantes con la media de una columna
df\['Edad']= df\['Edad'].fillna(df\['Edad'].mean())
- method='ffill': Propaga el último valor conocido hacia adelante.
- method='bfill': Propaga el siguiente valor conocido hacia atrás.
- value: Puedes asignar cualquier valor constante, como 0 o una cadena.
---
### 4. **Reemplazar Datos Faltantes con Métodos Estadísticos**
A veces es más efectivo reemplazar los valores faltantes con la **media, mediana o moda** de una columna, especialmente cuando trabajas con variables numéricas.
#### **Imputación con Media, Mediana o Moda**
\# Rellenar los valores faltantes con la media de una columna
df\['Edad']= df\['Edad'].fillna(df\['Edad'].mean())
\# Rellenar los valores faltantes con la mediana de una columna
df\['Edad']= df\['Edad'].fillna(df\['Edad'].median())
\# Rellenar los valores faltantes con la moda de una columna
df\['Edad']= df\['Edad'].fillna(df\['Edad'].mode()\[0])
- **Media (mean)**: Útil cuando los datos son distribuidos normalmente.
- **Mediana (median)**: Mejor para datos con distribuciones asimétricas o con outliers.
- **Moda (mode)**: Se usa más en datos categóricos.
---
### 5. **Interpolar Datos Faltantes**
En casos donde los datos tienen una relación temporal o secuencial, puedes usar la interpolación para estimar los valores faltantes.
#### **interpolate()**
Calcula valores intermedios para los valores nulos.
\# Interpolación de valores faltantes linealmente
df\_interpolado = df\['Edad'].interpolate()
---
### 6. **Detectar Columnas con Muchos Datos Faltantes**
En ciertos casos, puede que desees eliminar o investigar columnas que tengan muchos valores faltantes. Puedes detectar fácilmente estas columnas con:
\# Contar valores faltantes por columna
missing\_data = df.isnull().sum()
\# Mostrar columnas con más de un valor faltante
print(missing\_data\[missing\_data >1])
---
### 7. **Modificar el DataFrame con Datos Faltantes**
Algunas veces es útil modificar el DataFrame original para cambiar cómo Pandas maneja los datos faltantes.
#### **replace()**
Te permite reemplazar valores específicos (incluidos los NaN).
\# Reemplazar valores NaN con un valor específico
df\_reemplazado = df.replace(np.nan,'Desconocido')
---
### Resumen
- **Identificación de datos faltantes**: Con isnull() y notnull().
- **Eliminación de datos faltantes**: Usando dropna() para eliminar filas o columnas.
- **Rellenar datos faltantes**: Con fillna(), usando valores constantes, estadísticos o propagación de valores.
- **Reemplazo**: Usando replace() para sustituir los valores NaN con otros valores.
El manejo adecuado de los datos faltantes asegura que los análisis sean precisos y las conclusiones sean más confiables.
Muchas gracias, por esta información tan completa
muchas gracias
Cuando son datos numéricos se puede imputar con el promedio, siempre que no haya outliers. En caso de existir muchos outliers lo ideal es imputarlos con la media.
Justo iba a comentar el tema. En cuanto a datos numéricos, primero habría que eliminar los outliers y luego imputar con el promedio, ya que este último es afectado por los outliers).
Tambien en la exploración del dataset, si hay información irrelevante con nulos, los podemos eliminar. Todo esta en la exploración.
Hola Antonio, te refieres a que si hay outliers haces 2 imputaciones, una con los outliers y otra con el resto de datos ? Me confundí porque para mi, la media y el promedio son lo mismo. Gracias.
Con respecto a los valores faltantes, analice los diferentes valores y logre eliminar algunos y rellenar otros.:
1-En la columna "Description"---> data['Description'].fillna("No description", inplace=True)
2- Elimine los registros donde 'UnitPrice' = 0
3- En la columna donde 'CustomerID' = Nan use esta función----> data_cleaned['CustomerID'].fillna('No Registered Customer', inplace=True)
Para mi concepto, sería mejor imputar por la mediana, ya que por la media, dan valores muy extremos y podría generar overfiting en los modelos de machine learning
Eliminar filas o columnas con datos faltantes es una decisión importante y debe tomarse cuidadosamente, ya que puede afectar significativamente la calidad y representatividad de los datos. Aquí te doy algunos escenarios clave en los que es importante eliminar filas o columnas con datos inexistentes (nulos o NaN):
1. Cuando el porcentaje de datos faltantes es alto y la información no es crítica
Si una columna o fila tiene una gran cantidad de valores faltantes (por ejemplo, más del 50%), y no es fundamental para el análisis, podría ser preferible eliminarla. Mantener una columna con la mayoría de sus datos faltantes podría añadir ruido o distorsionar el análisis.Por qué eliminarla: La columna o fila ofrece muy poca información útil. Si intentas imputar los valores, podrías generar valores falsos que sesguen el análisis.pythonCopiar código# Eliminar columnas con más del 50% de valores faltantesthreshold = len(df) * 0.5df.dropna(thresh=threshold, axis=1, inplace=True)
2. Cuando la columna o fila es irrelevante para el análisis
Si una columna o fila no tiene valor analítico para la tarea que estás realizando, y además tiene valores faltantes, es una buena práctica eliminarla. Esto reduce la complejidad y el tamaño del conjunto de datos sin pérdida de información clave.Por qué eliminarla: Las columnas o filas irrelevantes pueden agregar complejidad innecesaria y dificultar el análisis o los modelos de machine learning.pythonCopiar código# Si una columna como 'Dirección' es irrelevante para el análisisdf.drop(['Dirección'], axis=1, inplace=True)
3. Cuando los datos faltantes son aleatorios y no tienen un patrón identificable
Si los datos faltantes son aleatorios y no están correlacionados con ninguna otra variable importante, podrías eliminar las filas o columnas afectadas. La presencia de valores faltantes sin patrón puede ser irrelevante o incluso perjudicial si se imputan de manera incorrecta.Por qué eliminarla: Imputar valores en casos donde los datos faltantes no siguen ningún patrón puede introducir sesgos o información incorrecta. Si los datos faltantes son aleatorios, eliminarlos suele ser la opción más segura.pythonCopiar código# Eliminar filas con cualquier valor faltantedf.dropna(inplace=True)
4. Cuando hay pocos datos faltantes y la muestra es lo suficientemente grande
Si el porcentaje de datos faltantes es muy pequeño en comparación con el tamaño total de los datos (por ejemplo, menos del 5%), y eliminar esas filas o columnas no afectará significativamente el análisis o las conclusiones, podrías optar por eliminarlos.Por qué eliminarla: En estos casos, la eliminación de las filas o columnas con datos faltantes no afectará el poder estadístico del análisis, y te aseguras de trabajar solo con datos completos.pythonCopiar código# Si las filas con valores faltantes representan menos del 5% de los datos
df = df.dropna()
5. Cuando los datos faltantes son en columnas no imputables (no se pueden completar de forma confiable)
En algunas situaciones, ciertos datos no pueden ser rellenados de manera confiable, especialmente en columnas con datos cualitativos o categóricos (como nombres o direcciones). En estos casos, si faltan valores, es mejor eliminarlos.Por qué eliminarla: Imputar valores en columnas no imputables (como nombres o categorías únicas) puede introducir errores o sesgos significativos. En estos casos, es más seguro eliminar los datos faltantes.pythonCopiar código# Eliminar filas si la columna 'Nombre' contiene NaN, ya que no es imputable de forma confiabledf.dropna(subset=['Nombre'], inplace=True)
6. Cuando las filas con datos faltantes corresponden a datos irrelevantes o redundantes
Si las filas con datos faltantes corresponden a registros redundantes o irrelevantes para el análisis (por ejemplo, datos históricos obsoletos o categorías con muy baja frecuencia), eliminarlas no afectará la calidad del análisis.Por qué eliminarla: Los datos irrelevantes o redundantes pueden añadir complejidad innecesaria al análisis o modelo, y si además tienen datos faltantes, es una señal para eliminarlos.pythonCopiar código# Eliminar filas que pertenecen a categorías poco frecuentes y tienen datos faltantesdf = df[df['Categoría'].value_counts() > 10]
7. Cuando los datos faltantes provienen de errores de registro
Si los datos faltantes son el resultado de errores de registro o de entrada de datos, especialmente en sistemas automatizados, es mejor eliminarlos. Por ejemplo, si los valores faltantes provienen de problemas técnicos (sensores defectuosos, errores de entrada, etc.), esos datos no son confiables.Por qué eliminarla: Los datos incorrectos o incompletos debido a errores de registro no aportarán valor al análisis y pueden generar conclusiones erróneas si se imputa de manera incorrecta.pythonCopiar código# Eliminar filas con datos faltantes debido a errores de sensoresdf.dropna(subset=['Sensor_1'], inplace=True)
8. Cuando estás creando un modelo que no admite datos faltantes
Algunos algoritmos de machine learning no pueden manejar datos faltantes directamente (por ejemplo, árboles de decisión, SVM, redes neuronales). En estos casos, es importante eliminar las filas o columnas con valores faltantes si no es posible imputarlos de manera segura.Por qué eliminarla: Mantener datos faltantes en un conjunto de datos que va a ser usado por un modelo que no los admite puede causar errores o resultados inexactos.pythonCopiar código# Eliminar todas las filas con valores faltantes antes de entrenar el modelodf.dropna(inplace=True)
Cuándo NO eliminar datos faltantes
Cuando los valores faltantes son sistemáticos o tienen un patrón: Si los valores faltantes siguen un patrón (por ejemplo, están correlacionados con otras variables), eliminarlos puede introducir sesgos. En estos casos, es mejor imputar los valores faltantes.
Cuando la pérdida de datos eliminaría información importante: Si las filas o columnas con valores faltantes contienen información relevante para el análisis, eliminarlas podría reducir la capacidad predictiva de un modelo o la precisión de un análisis.
Cuando los valores faltantes son pocos pero críticos: Si las columnas con datos faltantes contienen valores muy importantes para el análisis (como etiquetas en un problema de clasificación), es mejor intentar imputar o recolectar los datos faltantes antes de eliminarlos.
Conclusión
Eliminar filas o columnas con datos faltantes puede ser importante en situaciones donde los datos son irrelevantes, están presentes en una cantidad considerable o son difíciles de imputar de forma confiable. Sin embargo, la decisión siempre debe estar guiada por el impacto que tendrá sobre el análisis general y la calidad de los datos.
Cómo afectan lo valores nulos a la estadística de datos?
Reducción del Tamaño de la Muestra:
Muchas funciones estadísticas en Pandas (como .mean(), .sum(), .std(), etc.) excluyen automáticamente los valores nulos.
Esto reduce el tamaño efectivo de la muestra, lo que puede disminuir la precisión de los resultados.
Ejemplo:
import pandas as pdimport numpy as np
# Crear una Serie con valores nulosdata = pd.Series([1, 2, np.nan, 4, 5])
Si los valores nulos no están distribuidos aleatoriamente (es decir, si hay un patrón en los datos faltantes), los resultados estadísticos pueden estar sesgados.
Por ejemplo, si los valores faltantes tienden a ocurrir en ciertos grupos o condiciones, las conclusiones pueden no ser representativas de la población completa.
Problemas en Cálculos Específicos:
Algunas operaciones, como .cumsum() o .diff(), propagan los valores nulos, lo que puede afectar cálculos posteriores.
Otras funciones, como .corr() (correlación), excluyen automáticamente pares de valores nulos, lo que puede reducir la cantidad de datos disponibles para el análisis.
¿Cómo Manejar Valores Nulos en Análisis Estadísticos?
Eliminar valores nulos:
Usa .dropna() para eliminar filas o columnas con valores nulos.
Ventaja: Simplifica el análisis al trabajar solo con datos completos.
Desventaja: Puedes perder información valiosa si los valores nulos no son aleatorios.
Patrones de datos faltantes: Investiga si los valores nulos siguen un patrón (por ejemplo, si están relacionados con otra variable).
Imputación avanzada: En casos complejos, puedes usar técnicas de imputación avanzada, como la regresión o métodos de machine learning.
Yo he trabajado con grandes bases datos pero no directamente en código sino en interfaces gráficas, lo importante es saber lo que vamos usar y si vamos a realizar una manipulación de datos, es importante tener un respaldo, mientras tu actividad no requiere un cambio especifico, en alguna columna donde haya datos faltantes que eso no genere ruido, pero si es necesario poner datos, y no hay quien te específique qué poner, deberás hacerlo notificando antes a tu superior y si tu eres el superior, siempre siempre siempre siempre deber tener un respaldo de la base de datos, puede que no signifique nada a corto plazo pero muchas veces por esa buena práctica podrías salvar hasta tu empleo.
📝 Mis apuntes de esta clase:
Datos Faltantes
Los datos faltantes, por lo general son valores nulos o bien valores que están fuera de rango (según la variable).
Los datos pueden faltar en nuestro dataset por varias razones:
- Datos no disponibles a la hora de la recolección.
- Errores durante el almacenamiento.
- Errores en la recolección.
Durante el proceso de limpieza de datos se les da tratamiento a los valores faltantes, que pueden ser:
- Imputación (rellenar los faltantes con valores conocidos, ej: media, mediana)
- Eliminación
Para buscar valores faltantes pandas nos provee dos funciones:
isna()
isnull()
Ambdas funciones regresan un DataFrame booleano, donde:
False: El dato NO es faltante.
True: El dato SI es faltante.
Al DataFrame resultante podemos aplicarle la función sum() y obtendremos una Serie con el conteo (sumatoria) de los valores en True, el índice de la serie es el nombre de la columna.
# Cuantos faltantes tenemos en total?total_missing = retail_df.isna().sum().sum()print(f"Total de valores faltantes: {total_missing}")# Cuantos faltantes tenemos por columna?total_missing_column = retail_df.isnull().sum()print("Total de valores faltantes por cada columna:\n", total_missing_column)# Cual es la proporción de faltatantes respecto a total de registros?lenght = retail_df.shape[0]column_proportion =round((total_missing_column[total_missing_column >0]/ lenght)*100,2)total_proportion =round((total_missing / lenght)*100,2)print(f"\nProporción total de faltantes: {total_proportion}")print("Proporción de faltantes por columna:\n", column_proportion)
Resultado:
Total de valores faltantes: 136534
Total de valores faltantes por cada columna:
InvoiceNo 0
StockCode 0
Description 1454
Quantity 0
InvoiceDate 0
UnitPrice 0
CustomerID 135080
Country 0
dtype: int64
Proporción total de faltantes: 25.2
Proporción de faltantes por columna:
Description 0.27
CustomerID 24.93
dtype: float64
En en análisis podemos observar que el 25.2% del DataFrame corresponde a datos faltantes, de los cuales solo el 0.27% corresponden a la columna Description y el resto al CustomerID.
Para el caso de la columna Description podemos eliminar los registros con datos faltantes dado que la proporción es mínima.
Sin embargo eliminar el 24.93% de datos faltantes en CustomerID conllevaría una perdida de información considerable, por lo tanto es mejor proceder a imputar dichos valores faltantes.
Eliminar datos faltantes
La función drona() elimina datos faltantes tanto de un DataFrame como de una Serie, la función por si sola (sin parámetros ) devuelve un DataFrame/Serie sin los registros que tengan algún valor faltante, sin embargo podemos enviar una serie de parámetros para modificar este resultado.
Parámetros:
axis: 0 (default) para eliminar filas, 1 para eliminar columnas.
how: "any" (default) elimina la fila/columna si encuentra algún valor faltante, "all" elimina la fila/columna si y solo si todos los elementos son faltantes.
subset: Lista de columnas a evaluar si cuentan con nulos.
inplace: False (default) no modifica el DataFrame/Serie pero retorna uno nuevo sin los faltantes, True modifica el DataFrame/Serie y no retorna nada.
Análisis de datos donde Description tiene valores faltantes.
data_description_na = retail_df[retail_df["Description"].isna()]quantity_less_0 = data_description_na[data_description_na["Quantity"]<0].shape[0]print(f"Total de datos de 'Quantity' menor a 0: {quantity_less_0}")print("Valores de 'UnitPrice': ", data_description_na["UnitPrice"].unique())print("Valores de 'CustomerID': ", data_description_na["CustomerID"].unique())
Resultado:
Total de datos de 'Quantity' menor a 0: 862
Valores de 'UnitPrice': [0.]
Valores de 'CustomerID': [nan]
Las columnas CustomerID, UnitPrice y Quantity cuando Description es null (valor faltante) son a su vez faltantes y negativos, por lo tanto podemos concluir que eliminar los registros donde Description es null no incurrirá en análisis sesgados o con interpretaciones erróneas.
# Eliminamos las filas con valores faltantes solo en la columna "Description" y modificamos el DataFrameretail_df.dropna(subset=["Description"], inplace=True)retail_df.isna().sum()
Pandas incluye funciones para imputar datos faltantes a partir de un dato conocido.
Funciones:
ffill(): Forward Fill o llenado hacia adelante, rellena los valores faltantes (NA/NaN) a partir del último dato valido hasta el siguiente dato valido.
bfill(): Backward Fill o llenado hacia atrás, rellena los valores faltantes (NA/NaN) a partir del siguiente dato valido hasta rellenar los datos faltantes que están detrás.
Ambas funciones reciben el parámetro inplace para indicarle a pandas si modifica o no el DataFrame original.
Para la columna CustomerID aplicaré la función ffill.
Eliminar filas con datos faltantes es adecuado cuando se tiene un número reducido de casos nulos y su eliminación no afecta significativamente el análisis. Para columnas, se suelen eliminar cuando tienen un porcentaje alto de datos faltantes o si su contenido no es relevante.
Rellenar con ceros o datos estimados es útil cuando se necesita mantener la estructura del dataset y los valores perdidos son manejables. Se prefiere usar la media o mediana para mantener la integridad del análisis. Estas decisiones dependen del contexto del análisis y del impacto en los resultados.
Hola, considero que antes de hacer cambios en un dataframe por valores nulos, es importante tener el contexto de aquello que vamos a cambiar y si realmente lo podemos hacer, ya que en ocasiones nos puede generar errores en los cálculos finales y esto puede derivar en una errónea toma de decisiones.
Así que investigue como puedo saber en donde están esos valores nulos y ver el detalle completo de las filas para tener un poco mas de contexto antes de hacer ese cambio.
Les comparto el proceso para encontrarlos:
1. Podemos utilizar la funcion stack(), esta reorganiza un DataFrame pivotándolo de un formato ancho a un formato largo. Esto significa que toma las columnas de un DataFrame y las convierte en un nuevo nivel en el índice, esencialmente apilándolas.
2. Después puedo buscar con iloc ese indice nulo y ver toda la info.
Espero sea de utilidad.
Es importante eliminar filas que repitan todos los datos de cada columna, y dejar solo una con toda la info. También se debe evaluar el borrado de filas cuando falta un dato relevante para esa fila y el cual no se pueda llenar con un cero (0) o con la media, como es el caso de un número de identificación único.
eliminar columnas o filas con datos inexistentes:
se puede considerar eliminar una fila o columna cuando faltan datos que compongan un porcentaje considerable para la informacion ejemplo mas del 50% de datos estan vacios
cuando no hay datos que sean relevantes para el analisis
Recuerda que Estamos enfocados en atender y brindar espacios para nomadas digitales, teletrabajo y coworking space en Agrolenials Paradise Ecohostel Country Inns contacto directo whatsapp +573206299333 y Faccebook
MOdelo coworcountry o modelo coworculture con muchas actividades para pausas activas y acompañamiento de tu rol profesional
¿Cuándo es importante eliminar una fila o columna con datos inexistentes?
Creo que en el caso de las columnas, estas se pueden eliminar cuando tienen demasiados datos faltantes o cuando el contenido de esa categoría/columna no nos ayuda mucho en el análisis de los datos. En el caso de las filas, creo que es depende de la cantidad de filas con datos faltantes, ya que si representan un porcentaje muy alto de datos a eliminar podrían volverse un punto ciego que tergiverse nuestro análisis, pero si son pocas no debería representar un problema.
Dependiendo del contenido, la Eliminación de Filas puede resultar mas útil que la eliminación de columnas pienso yo, por ejemplo en el caso de un pipeline de ventas, seria mejor eliminar filas que columnas, a menos que las filas contengan información de contacto en ese caso lo mejor seria llenar los valores con 0, para posteriormente calcular la media del mismo. Esto a fines prácticos a mi parecer es mas sencillo de explicar y mas util.
Patrones y buenas prácticas
Primero decide qué columnas son críticas vs opcionales; úsalo con subset.
Usa thresh para “densidad mínima” y evitar perder demasiadas filas/columnas.
Evita inplace=True salvo que sea necesario; las copias son más predecibles y encadenables.
Tras eliminar filas, reindexa con reset_index(drop=True) si necesitas índices limpios.
Si vas a modelar/analizar, considera imputar (fillna) en lugar de descartar masivamente.
En series temporales, decide si los huecos son errores (elimínalos) o falta de medición (imputa/interpola).
Cuidado con columnas numéricas leídas como texto: conviértelas antes (to_numeric) para que NaN/pd.NA aparezcan y dropna() funcione.
import pandas as pd
import numpy as np
# Creamos los datos manualmente para que no dependas de un archivo externo
# paso 3. Tratar Precio usando loc para un producto específico
df.loc[df['Producto'] == 'Vino', 'Precio'] = 15.0
Producto 0
Ventas 8
Precio 8
dtype: int64
Considero que es viable la eliminacion de una fila cuando los datos no corresponden con la estructura definida para el campo
¿Cuando se calcula la media este tome en cuenta los valores nulos y 0 para el cálculo?
cuando eliminar columnas o filas con datos inexistentes:
se puede considerar eliminar una fila o columna cuando faltan datos que compongan un porcentaje considerable para la informacion ejemplo mas del 50% de datos estan vacios
cuando no hay datos que sean relevantes para el analisis por ejemplo:solo nota o comentarios vacios.