Para practicar y aprender cómo manejar datos faltantes, puedes utilizar algunos conjuntos de datos (datasets) populares que tienen valores faltantes de manera intencional o realista. Estos datasets se utilizan frecuentemente para entrenar habilidades de preprocesamiento en ciencia de datos.
### 1. **Titanic (Kaggle)**
El famoso conjunto de datos del Titanic incluye información sobre los pasajeros del barco, con características como el nombre, edad, sexo, clase, y si sobrevivieron o no. Algunos campos, como la edad y el puerto de embarque, tienen valores faltantes.
- **Descarga**: [Titanic Dataset - Kaggle](https://www.kaggle.com/c/titanic)
- **Valores faltantes**: Age, Cabin, Embarked.
```python
import pandas as pd
titanic = pd.read_csv('titanic.csv')
print(titanic.isnull().sum())
```
### 2. **Housing Prices (Kaggle)**
Este dataset proviene de una competencia de Kaggle sobre predicción de precios de viviendas. Contiene información sobre características de las casas, como el tamaño, el número de habitaciones, el año de construcción, entre otros, y tiene valores faltantes en varias columnas.
- **Descarga**: [House Prices - Kaggle](https://www.kaggle.com/c/house-prices-advanced-regression-techniques)
- **Valores faltantes**: LotFrontage, GarageType, GarageYrBlt, etc.
```python
housing = pd.read_csv('house_prices.csv')
print(housing.isnull().sum())
```
### 3. **Air Quality (UCI Machine Learning Repository)**
Este dataset contiene información sobre la calidad del aire en Milán, Italia, y tiene muchos valores faltantes debido a fallas en los dispositivos de monitoreo. Se utiliza comúnmente para trabajar con interpolación de datos faltantes y análisis de series temporales.
- **Descarga**: [Air Quality Dataset - UCI](https://archive.ics.uci.edu/ml/datasets/Air+quality)
- **Valores faltantes**: Muchos valores faltantes debido a errores en la captura de datos.
```python
air_quality = pd.read_csv('AirQualityUCI.csv', sep=';')
print(air_quality.isnull().sum())
```
### 4. **Diabetes Dataset (Pima Indians)**
Este dataset contiene información sobre pacientes con antecedentes de diabetes y varias características médicas, como el nivel de glucosa en sangre y la presión arterial. Algunos valores son claramente incorrectos o están ausentes, por lo que se utiliza para preprocesar datos médicos.
- **Descarga**: [Diabetes Dataset - Kaggle](https://www.kaggle.com/uciml/pima-indians-diabetes-database)
- **Valores faltantes**: Algunos valores de glucosa, presión arterial y otros son 0, lo cual es un valor incorrecto y representa valores faltantes.
```python
diabetes = pd.read_csv('diabetes.csv')
diabetes.replace(0, np.nan, inplace=True)
print(diabetes.isnull().sum())
```
### 5. **World Happiness Report**
Este conjunto de datos contiene indicadores de felicidad mundial, medidos por varios factores como el PIB per cápita, la esperanza de vida, el apoyo social y la percepción de corrupción. Algunos de estos indicadores pueden estar faltantes en algunos países.
- **Descarga**: [World Happiness Report - Kaggle](https://www.kaggle.com/unsdsn/world-happiness)
- **Valores faltantes**: Algunos datos para países están ausentes en columnas como Social Support, Generosity, etc.
```python
happiness = pd.read_csv('world_happiness.csv')
print(happiness.isnull().sum())
```
### 6. **Medical Cost Personal Dataset**
Este conjunto de datos contiene información sobre los costos médicos personales según varios factores como la edad, el sexo, el IMC, el número de hijos, el hábito de fumar y la región. Algunos de estos campos pueden contener valores faltantes o no válidos.
- **Descarga**: [Medical Cost Personal Dataset - Kaggle](https://www.kaggle.com/mirichoi0218/insurance)
- **Valores faltantes**: Aunque originalmente no tiene valores faltantes, se puede modificar para introducir valores NaN para prácticas de manejo de datos faltantes.
```python
medical = pd.read_csv('insurance.csv')
medical['bmi'] = medical['bmi'].mask(medical['bmi'] < 18)
print(medical.isnull().sum())
```
### 7. **Adult Dataset (Income Prediction)**
Este dataset contiene información sobre los ingresos de adultos, junto con detalles como edad, ocupación, estado civil, etc. Tiene varios valores faltantes en categorías como la ocupación y el área de trabajo.
- **Descarga**: [Adult Dataset - UCI Machine Learning Repository](https://archive.ics.uci.edu/ml/datasets/adult)
- **Valores faltantes**: Workclass, Occupation, Native-country.
```python
adult = pd.read_csv('adult.data', header=None)
print(adult.isnull().sum())
```
---
### Técnicas para Manejar Datos Faltantes
Con estos datasets, puedes aplicar técnicas de manejo de valores faltantes como:
- **Eliminar filas o columnas con dropna()**.
- **Rellenar con un valor como fillna()**.
- **Interpolar valores faltantes usando interpolate()**.
- **Reemplazar valores faltantes con medidas estadísticas (media, mediana, moda)**.
Estas prácticas te ayudarán a gestionar correctamente los valores faltantes en tus proyectos de análisis de datos.