Capítulo 8: Técnicas Avanzadas de Limpieza de Datos
8.3 Ejercicios Prácticos para el Capítulo 8
Estos ejercicios te darán práctica práctica en la identificación y manejo de anomalías en los datos usando las técnicas cubiertas en este capítulo. Cada ejercicio aborda un aspecto diferente de la limpieza de datos, y se proporcionan soluciones con código cuando sea necesario.
Ejercicio 1: Estandarización de Formatos de Fecha
Te dan un conjunto de datos donde las fechas se representan en diferentes formatos. Tu tarea es:
- Convertir todas las fechas al formato
YYYY-MM-DD
. - Identificar cualquier fecha inválida.
import pandas as pd
# Sample data with inconsistent date formats
data = {'OrderDate': ['2022-01-15', '01/20/2022', 'February 5, 2022', '2022/02/10', '2022-31-12']}
df = pd.DataFrame(data)
# Solution: Convert all dates to a consistent format
df['OrderDate'] = pd.to_datetime(df['OrderDate'], errors='coerce')
# Identify invalid dates (converted to NaT)
invalid_dates = df[df['OrderDate'].isna()]
print("Dataset with standardized dates:")
print(df)
print("\\nInvalid dates:")
print(invalid_dates)
Ejercicio 2: Eliminación de Filas Duplicadas
Dado un conjunto de datos con entradas duplicadas, tu tarea es:
- Identificar las filas duplicadas.
- Eliminar los duplicados y conservar solo los registros únicos.
# Sample data with duplicate rows
data = {'CustomerID': [101, 102, 103, 101],
'Name': ['Alice', 'Bob', 'Charlie', 'Alice'],
'PurchaseAmount': [150, 200, 300, 150]}
df = pd.DataFrame(data)
# Solution: Identify duplicate rows
duplicates = df[df.duplicated()]
print("Duplicate rows:")
print(duplicates)
# Solution: Remove duplicate rows
df = df.drop_duplicates()
print("\\nDataset after removing duplicates:")
print(df)
Ejercicio 3: Estandarización de Texto en Datos Categóricos
Se te proporciona un conjunto de datos que contiene capitalización inconsistente en una columna categórica. Tu tarea es:
- Estandarizar todas las entradas en la columna Categoría a minúsculas.
# Sample data with inconsistent text entries
data = {'Category': ['Electronics', 'electronics', 'ELECTronics', 'Furniture', 'furniture']}
df = pd.DataFrame(data)
# Solution: Standardize text to lowercase
df['Category'] = df['Category'].str.lower()
print("Dataset with standardized categories:")
print(df)
Ejercicio 4: Eliminación de Valores Fuera de Rango
Dado un conjunto de datos con una columna Edad, donde las edades válidas oscilan entre 0 y 120, tu tarea es:
- Identificar cualquier valor en la columna Edad que esté fuera de este rango.
- Eliminar las filas con valores fuera de rango.
# Sample data with an out-of-range value
data = {'Name': ['Alice', 'Bob', 'Charlie', 'Diana'],
'Age': [25, 132, 30, -5]}
df = pd.DataFrame(data)
# Solution: Identify out-of-range values
out_of_range = df[(df['Age'] < 0) | (df['Age'] > 120)]
print("Out-of-range values:")
print(out_of_range)
# Solution: Remove out-of-range values
df = df[(df['Age'] >= 0) & (df['Age'] <= 120)]
print("\\nDataset after removing out-of-range values:")
print(df)
Ejercicio 5: Imputación de Valores Faltantes Después de la Corrección de Anomalías
Tienes un conjunto de datos en el que faltan algunas fechas después de corregir anomalías en la columna FechaPedido. Tu tarea es:
Rellenar las fechas faltantes hacia adelante (forward-fill) para mantener la continuidad en los datos.
# Sample data with missing values
data = {'OrderDate': ['2022-01-15', pd.NaT, '2022-02-05', pd.NaT]}
df = pd.DataFrame(data)
# Solution: Fill missing dates using forward fill
df['OrderDate'] = df['OrderDate'].fillna(method='ffill')
print("Dataset after forward-filling missing dates:")
print(df)
Estas actividades abarcan técnicas esenciales de limpieza de datos usando Pandas, permitiéndote manejar formatos inconsistentes, duplicados, inconsistencias categóricas, valores fuera de rango y valores faltantes. Al dominar estas técnicas, podrás preparar conjuntos de datos de alta calidad para el análisis y la modelización.
8.3 Ejercicios Prácticos para el Capítulo 8
Estos ejercicios te darán práctica práctica en la identificación y manejo de anomalías en los datos usando las técnicas cubiertas en este capítulo. Cada ejercicio aborda un aspecto diferente de la limpieza de datos, y se proporcionan soluciones con código cuando sea necesario.
Ejercicio 1: Estandarización de Formatos de Fecha
Te dan un conjunto de datos donde las fechas se representan en diferentes formatos. Tu tarea es:
- Convertir todas las fechas al formato
YYYY-MM-DD
. - Identificar cualquier fecha inválida.
import pandas as pd
# Sample data with inconsistent date formats
data = {'OrderDate': ['2022-01-15', '01/20/2022', 'February 5, 2022', '2022/02/10', '2022-31-12']}
df = pd.DataFrame(data)
# Solution: Convert all dates to a consistent format
df['OrderDate'] = pd.to_datetime(df['OrderDate'], errors='coerce')
# Identify invalid dates (converted to NaT)
invalid_dates = df[df['OrderDate'].isna()]
print("Dataset with standardized dates:")
print(df)
print("\\nInvalid dates:")
print(invalid_dates)
Ejercicio 2: Eliminación de Filas Duplicadas
Dado un conjunto de datos con entradas duplicadas, tu tarea es:
- Identificar las filas duplicadas.
- Eliminar los duplicados y conservar solo los registros únicos.
# Sample data with duplicate rows
data = {'CustomerID': [101, 102, 103, 101],
'Name': ['Alice', 'Bob', 'Charlie', 'Alice'],
'PurchaseAmount': [150, 200, 300, 150]}
df = pd.DataFrame(data)
# Solution: Identify duplicate rows
duplicates = df[df.duplicated()]
print("Duplicate rows:")
print(duplicates)
# Solution: Remove duplicate rows
df = df.drop_duplicates()
print("\\nDataset after removing duplicates:")
print(df)
Ejercicio 3: Estandarización de Texto en Datos Categóricos
Se te proporciona un conjunto de datos que contiene capitalización inconsistente en una columna categórica. Tu tarea es:
- Estandarizar todas las entradas en la columna Categoría a minúsculas.
# Sample data with inconsistent text entries
data = {'Category': ['Electronics', 'electronics', 'ELECTronics', 'Furniture', 'furniture']}
df = pd.DataFrame(data)
# Solution: Standardize text to lowercase
df['Category'] = df['Category'].str.lower()
print("Dataset with standardized categories:")
print(df)
Ejercicio 4: Eliminación de Valores Fuera de Rango
Dado un conjunto de datos con una columna Edad, donde las edades válidas oscilan entre 0 y 120, tu tarea es:
- Identificar cualquier valor en la columna Edad que esté fuera de este rango.
- Eliminar las filas con valores fuera de rango.
# Sample data with an out-of-range value
data = {'Name': ['Alice', 'Bob', 'Charlie', 'Diana'],
'Age': [25, 132, 30, -5]}
df = pd.DataFrame(data)
# Solution: Identify out-of-range values
out_of_range = df[(df['Age'] < 0) | (df['Age'] > 120)]
print("Out-of-range values:")
print(out_of_range)
# Solution: Remove out-of-range values
df = df[(df['Age'] >= 0) & (df['Age'] <= 120)]
print("\\nDataset after removing out-of-range values:")
print(df)
Ejercicio 5: Imputación de Valores Faltantes Después de la Corrección de Anomalías
Tienes un conjunto de datos en el que faltan algunas fechas después de corregir anomalías en la columna FechaPedido. Tu tarea es:
Rellenar las fechas faltantes hacia adelante (forward-fill) para mantener la continuidad en los datos.
# Sample data with missing values
data = {'OrderDate': ['2022-01-15', pd.NaT, '2022-02-05', pd.NaT]}
df = pd.DataFrame(data)
# Solution: Fill missing dates using forward fill
df['OrderDate'] = df['OrderDate'].fillna(method='ffill')
print("Dataset after forward-filling missing dates:")
print(df)
Estas actividades abarcan técnicas esenciales de limpieza de datos usando Pandas, permitiéndote manejar formatos inconsistentes, duplicados, inconsistencias categóricas, valores fuera de rango y valores faltantes. Al dominar estas técnicas, podrás preparar conjuntos de datos de alta calidad para el análisis y la modelización.
8.3 Ejercicios Prácticos para el Capítulo 8
Estos ejercicios te darán práctica práctica en la identificación y manejo de anomalías en los datos usando las técnicas cubiertas en este capítulo. Cada ejercicio aborda un aspecto diferente de la limpieza de datos, y se proporcionan soluciones con código cuando sea necesario.
Ejercicio 1: Estandarización de Formatos de Fecha
Te dan un conjunto de datos donde las fechas se representan en diferentes formatos. Tu tarea es:
- Convertir todas las fechas al formato
YYYY-MM-DD
. - Identificar cualquier fecha inválida.
import pandas as pd
# Sample data with inconsistent date formats
data = {'OrderDate': ['2022-01-15', '01/20/2022', 'February 5, 2022', '2022/02/10', '2022-31-12']}
df = pd.DataFrame(data)
# Solution: Convert all dates to a consistent format
df['OrderDate'] = pd.to_datetime(df['OrderDate'], errors='coerce')
# Identify invalid dates (converted to NaT)
invalid_dates = df[df['OrderDate'].isna()]
print("Dataset with standardized dates:")
print(df)
print("\\nInvalid dates:")
print(invalid_dates)
Ejercicio 2: Eliminación de Filas Duplicadas
Dado un conjunto de datos con entradas duplicadas, tu tarea es:
- Identificar las filas duplicadas.
- Eliminar los duplicados y conservar solo los registros únicos.
# Sample data with duplicate rows
data = {'CustomerID': [101, 102, 103, 101],
'Name': ['Alice', 'Bob', 'Charlie', 'Alice'],
'PurchaseAmount': [150, 200, 300, 150]}
df = pd.DataFrame(data)
# Solution: Identify duplicate rows
duplicates = df[df.duplicated()]
print("Duplicate rows:")
print(duplicates)
# Solution: Remove duplicate rows
df = df.drop_duplicates()
print("\\nDataset after removing duplicates:")
print(df)
Ejercicio 3: Estandarización de Texto en Datos Categóricos
Se te proporciona un conjunto de datos que contiene capitalización inconsistente en una columna categórica. Tu tarea es:
- Estandarizar todas las entradas en la columna Categoría a minúsculas.
# Sample data with inconsistent text entries
data = {'Category': ['Electronics', 'electronics', 'ELECTronics', 'Furniture', 'furniture']}
df = pd.DataFrame(data)
# Solution: Standardize text to lowercase
df['Category'] = df['Category'].str.lower()
print("Dataset with standardized categories:")
print(df)
Ejercicio 4: Eliminación de Valores Fuera de Rango
Dado un conjunto de datos con una columna Edad, donde las edades válidas oscilan entre 0 y 120, tu tarea es:
- Identificar cualquier valor en la columna Edad que esté fuera de este rango.
- Eliminar las filas con valores fuera de rango.
# Sample data with an out-of-range value
data = {'Name': ['Alice', 'Bob', 'Charlie', 'Diana'],
'Age': [25, 132, 30, -5]}
df = pd.DataFrame(data)
# Solution: Identify out-of-range values
out_of_range = df[(df['Age'] < 0) | (df['Age'] > 120)]
print("Out-of-range values:")
print(out_of_range)
# Solution: Remove out-of-range values
df = df[(df['Age'] >= 0) & (df['Age'] <= 120)]
print("\\nDataset after removing out-of-range values:")
print(df)
Ejercicio 5: Imputación de Valores Faltantes Después de la Corrección de Anomalías
Tienes un conjunto de datos en el que faltan algunas fechas después de corregir anomalías en la columna FechaPedido. Tu tarea es:
Rellenar las fechas faltantes hacia adelante (forward-fill) para mantener la continuidad en los datos.
# Sample data with missing values
data = {'OrderDate': ['2022-01-15', pd.NaT, '2022-02-05', pd.NaT]}
df = pd.DataFrame(data)
# Solution: Fill missing dates using forward fill
df['OrderDate'] = df['OrderDate'].fillna(method='ffill')
print("Dataset after forward-filling missing dates:")
print(df)
Estas actividades abarcan técnicas esenciales de limpieza de datos usando Pandas, permitiéndote manejar formatos inconsistentes, duplicados, inconsistencias categóricas, valores fuera de rango y valores faltantes. Al dominar estas técnicas, podrás preparar conjuntos de datos de alta calidad para el análisis y la modelización.
8.3 Ejercicios Prácticos para el Capítulo 8
Estos ejercicios te darán práctica práctica en la identificación y manejo de anomalías en los datos usando las técnicas cubiertas en este capítulo. Cada ejercicio aborda un aspecto diferente de la limpieza de datos, y se proporcionan soluciones con código cuando sea necesario.
Ejercicio 1: Estandarización de Formatos de Fecha
Te dan un conjunto de datos donde las fechas se representan en diferentes formatos. Tu tarea es:
- Convertir todas las fechas al formato
YYYY-MM-DD
. - Identificar cualquier fecha inválida.
import pandas as pd
# Sample data with inconsistent date formats
data = {'OrderDate': ['2022-01-15', '01/20/2022', 'February 5, 2022', '2022/02/10', '2022-31-12']}
df = pd.DataFrame(data)
# Solution: Convert all dates to a consistent format
df['OrderDate'] = pd.to_datetime(df['OrderDate'], errors='coerce')
# Identify invalid dates (converted to NaT)
invalid_dates = df[df['OrderDate'].isna()]
print("Dataset with standardized dates:")
print(df)
print("\\nInvalid dates:")
print(invalid_dates)
Ejercicio 2: Eliminación de Filas Duplicadas
Dado un conjunto de datos con entradas duplicadas, tu tarea es:
- Identificar las filas duplicadas.
- Eliminar los duplicados y conservar solo los registros únicos.
# Sample data with duplicate rows
data = {'CustomerID': [101, 102, 103, 101],
'Name': ['Alice', 'Bob', 'Charlie', 'Alice'],
'PurchaseAmount': [150, 200, 300, 150]}
df = pd.DataFrame(data)
# Solution: Identify duplicate rows
duplicates = df[df.duplicated()]
print("Duplicate rows:")
print(duplicates)
# Solution: Remove duplicate rows
df = df.drop_duplicates()
print("\\nDataset after removing duplicates:")
print(df)
Ejercicio 3: Estandarización de Texto en Datos Categóricos
Se te proporciona un conjunto de datos que contiene capitalización inconsistente en una columna categórica. Tu tarea es:
- Estandarizar todas las entradas en la columna Categoría a minúsculas.
# Sample data with inconsistent text entries
data = {'Category': ['Electronics', 'electronics', 'ELECTronics', 'Furniture', 'furniture']}
df = pd.DataFrame(data)
# Solution: Standardize text to lowercase
df['Category'] = df['Category'].str.lower()
print("Dataset with standardized categories:")
print(df)
Ejercicio 4: Eliminación de Valores Fuera de Rango
Dado un conjunto de datos con una columna Edad, donde las edades válidas oscilan entre 0 y 120, tu tarea es:
- Identificar cualquier valor en la columna Edad que esté fuera de este rango.
- Eliminar las filas con valores fuera de rango.
# Sample data with an out-of-range value
data = {'Name': ['Alice', 'Bob', 'Charlie', 'Diana'],
'Age': [25, 132, 30, -5]}
df = pd.DataFrame(data)
# Solution: Identify out-of-range values
out_of_range = df[(df['Age'] < 0) | (df['Age'] > 120)]
print("Out-of-range values:")
print(out_of_range)
# Solution: Remove out-of-range values
df = df[(df['Age'] >= 0) & (df['Age'] <= 120)]
print("\\nDataset after removing out-of-range values:")
print(df)
Ejercicio 5: Imputación de Valores Faltantes Después de la Corrección de Anomalías
Tienes un conjunto de datos en el que faltan algunas fechas después de corregir anomalías en la columna FechaPedido. Tu tarea es:
Rellenar las fechas faltantes hacia adelante (forward-fill) para mantener la continuidad en los datos.
# Sample data with missing values
data = {'OrderDate': ['2022-01-15', pd.NaT, '2022-02-05', pd.NaT]}
df = pd.DataFrame(data)
# Solution: Fill missing dates using forward fill
df['OrderDate'] = df['OrderDate'].fillna(method='ffill')
print("Dataset after forward-filling missing dates:")
print(df)
Estas actividades abarcan técnicas esenciales de limpieza de datos usando Pandas, permitiéndote manejar formatos inconsistentes, duplicados, inconsistencias categóricas, valores fuera de rango y valores faltantes. Al dominar estas técnicas, podrás preparar conjuntos de datos de alta calidad para el análisis y la modelización.