Menu iconMenu icon
Fundamentos del Análisis de Datos con Python

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)
  1. Elimina las filas donde falte el Nombre.
  2. Rellena los valores faltantes en las columnas Edad y Experiencia 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)
  1. Elimina las filas donde falte el Nombre.
  2. Rellena los valores faltantes en las columnas Edad y Experiencia 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)
  1. Elimina las filas donde falte el Nombre.
  2. Rellena los valores faltantes en las columnas Edad y Experiencia 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)
  1. Elimina las filas donde falte el Nombre.
  2. Rellena los valores faltantes en las columnas Edad y Experiencia 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']])