Capítulo 9: Preprocesamiento de Datos
Ejercicios Prácticos: Capítulo 9
Ejercicio 9.1: Limpieza de Datos
Tienes un conjunto de datos con valores faltantes y valores atípicos.
import pandas as pd
import numpy as np
# Create a sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', None, 'Eve'],
'Age': [25, np.nan, 35, 40, 50],
'Salary': [50000, 70000, 120000, 110000, 90000],
'Experience': [2, 10, np.nan, 7, 15]}
df = pd.DataFrame(data)
- Elimina las filas donde falte el
Nombre
. - Rellena los valores faltantes en las columnas
Edad
yExperiencia
con sus respectivas medias.
Solución
# Remove rows where Name is missing
df.dropna(subset=['Name'], inplace=True)
# Fill missing values with mean
df['Age'].fillna(df['Age'].mean(), inplace=True)
df['Experience'].fillna(df['Experience'].mean(), inplace=True)
Ejercicio 9.2: Ingeniería de Características
Crea una nueva característica llamada GrupoEdad
en el DataFrame anterior basada en la columna Edad
. Usa los siguientes grupos: "Joven" para Edad <=30, "De mediana edad" para Edad entre 31 y 45, y "Senior" para Edad > 45.
Solución
df['AgeGroup'] = pd.cut(df['Age'], bins=[0, 30, 45, np.inf], labels=['Young', 'Middle-aged', 'Senior'])
Ejercicio 9.3: Transformación de Datos
Aplica escalado Min-Max a la columna Salario
del DataFrame.
Solución
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df['Salary'] = scaler.fit_transform(df[['Salary']])
Ejercicios Prácticos: Capítulo 9
Ejercicio 9.1: Limpieza de Datos
Tienes un conjunto de datos con valores faltantes y valores atípicos.
import pandas as pd
import numpy as np
# Create a sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', None, 'Eve'],
'Age': [25, np.nan, 35, 40, 50],
'Salary': [50000, 70000, 120000, 110000, 90000],
'Experience': [2, 10, np.nan, 7, 15]}
df = pd.DataFrame(data)
- Elimina las filas donde falte el
Nombre
. - Rellena los valores faltantes en las columnas
Edad
yExperiencia
con sus respectivas medias.
Solución
# Remove rows where Name is missing
df.dropna(subset=['Name'], inplace=True)
# Fill missing values with mean
df['Age'].fillna(df['Age'].mean(), inplace=True)
df['Experience'].fillna(df['Experience'].mean(), inplace=True)
Ejercicio 9.2: Ingeniería de Características
Crea una nueva característica llamada GrupoEdad
en el DataFrame anterior basada en la columna Edad
. Usa los siguientes grupos: "Joven" para Edad <=30, "De mediana edad" para Edad entre 31 y 45, y "Senior" para Edad > 45.
Solución
df['AgeGroup'] = pd.cut(df['Age'], bins=[0, 30, 45, np.inf], labels=['Young', 'Middle-aged', 'Senior'])
Ejercicio 9.3: Transformación de Datos
Aplica escalado Min-Max a la columna Salario
del DataFrame.
Solución
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df['Salary'] = scaler.fit_transform(df[['Salary']])
Ejercicios Prácticos: Capítulo 9
Ejercicio 9.1: Limpieza de Datos
Tienes un conjunto de datos con valores faltantes y valores atípicos.
import pandas as pd
import numpy as np
# Create a sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', None, 'Eve'],
'Age': [25, np.nan, 35, 40, 50],
'Salary': [50000, 70000, 120000, 110000, 90000],
'Experience': [2, 10, np.nan, 7, 15]}
df = pd.DataFrame(data)
- Elimina las filas donde falte el
Nombre
. - Rellena los valores faltantes en las columnas
Edad
yExperiencia
con sus respectivas medias.
Solución
# Remove rows where Name is missing
df.dropna(subset=['Name'], inplace=True)
# Fill missing values with mean
df['Age'].fillna(df['Age'].mean(), inplace=True)
df['Experience'].fillna(df['Experience'].mean(), inplace=True)
Ejercicio 9.2: Ingeniería de Características
Crea una nueva característica llamada GrupoEdad
en el DataFrame anterior basada en la columna Edad
. Usa los siguientes grupos: "Joven" para Edad <=30, "De mediana edad" para Edad entre 31 y 45, y "Senior" para Edad > 45.
Solución
df['AgeGroup'] = pd.cut(df['Age'], bins=[0, 30, 45, np.inf], labels=['Young', 'Middle-aged', 'Senior'])
Ejercicio 9.3: Transformación de Datos
Aplica escalado Min-Max a la columna Salario
del DataFrame.
Solución
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df['Salary'] = scaler.fit_transform(df[['Salary']])
Ejercicios Prácticos: Capítulo 9
Ejercicio 9.1: Limpieza de Datos
Tienes un conjunto de datos con valores faltantes y valores atípicos.
import pandas as pd
import numpy as np
# Create a sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', None, 'Eve'],
'Age': [25, np.nan, 35, 40, 50],
'Salary': [50000, 70000, 120000, 110000, 90000],
'Experience': [2, 10, np.nan, 7, 15]}
df = pd.DataFrame(data)
- Elimina las filas donde falte el
Nombre
. - Rellena los valores faltantes en las columnas
Edad
yExperiencia
con sus respectivas medias.
Solución
# Remove rows where Name is missing
df.dropna(subset=['Name'], inplace=True)
# Fill missing values with mean
df['Age'].fillna(df['Age'].mean(), inplace=True)
df['Experience'].fillna(df['Experience'].mean(), inplace=True)
Ejercicio 9.2: Ingeniería de Características
Crea una nueva característica llamada GrupoEdad
en el DataFrame anterior basada en la columna Edad
. Usa los siguientes grupos: "Joven" para Edad <=30, "De mediana edad" para Edad entre 31 y 45, y "Senior" para Edad > 45.
Solución
df['AgeGroup'] = pd.cut(df['Age'], bins=[0, 30, 45, np.inf], labels=['Young', 'Middle-aged', 'Senior'])
Ejercicio 9.3: Transformación de Datos
Aplica escalado Min-Max a la columna Salario
del DataFrame.
Solución
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df['Salary'] = scaler.fit_transform(df[['Salary']])