← Volver a los quizzesQuiz gratuito

Proceso CRISP-DM y manipulación de datos con Pandas

El Cross‑Industry Standard Process for Data Mining (CRISP‑DM) es el marco de referencia más usado en proyectos de ciencia de datos. Se compone de seis fases que guían desde la comprensión…

10 preguntas~5 min
Proceso CRISP-DM y manipulación de datos con Pandas — Qwi
0 / 10
Puntuación: 0%
1

En la fase de Comprensión de los datos, ¿qué método de Pandas permite obtener rápidamente estadísticas descriptivas de variables numéricas?

2

Si una columna "ciudad" contiene valores como "CDMX", "cdmx " y "Cdmx", ¿qué operación de Pandas es esencial para evitar que se consideren categorías distintas?

3

Al aplicar una máscara booleana df['edad'] > 30, ¿por qué el uso de "and" en lugar de "&" genera un error en Pandas?

4

¿Cuál es la diferencia principal entre los métodos .loc y .iloc en la selección de datos?

5

En la fase de Preparación de los datos, ¿qué porcentaje típico de valores faltantes sugiere que se debe imputar en lugar de eliminar la columna?

6

Al detectar outliers con el método IQR, ¿por qué el valor 950 000 en la columna "ingreso" se considera outlier?

7

¿Cuál es la ventaja principal de usar pd.qcut() en lugar de pd.cut() al discretizar una variable continua?

8

En un merge() con how='inner', ¿qué filas del DataFrame resultante se conservan?

9

Al usar .apply(axis=1) para crear una columna basada en varias columnas, ¿por qué suele ser menos eficiente que una operación vectorizada?

10

Si se desea mantener la información de que un registro tenía un valor faltante antes de imputarlo, ¿qué práctica es recomendada?

Introducción al proceso CRISP‑DM y la manipulación de datos con Pandas

El Cross‑Industry Standard Process for Data Mining (CRISP‑DM) es el marco de referencia más usado en proyectos de ciencia de datos. Se compone de seis fases que guían desde la comprensión del negocio hasta la implementación del modelo. En este curso nos enfocaremos en las fases de Comprensión de los datos y Preparación de los datos, mostrando cómo Pandas facilita cada paso.

Fase 1: Comprensión del negocio

Antes de tocar el código, es esencial definir los objetivos del proyecto, identificar las variables clave y establecer métricas de éxito. Esta fase determina qué datos necesitamos y cómo evaluaremos los resultados.

Fase 2: Comprensión de los datos

En esta etapa exploramos el conjunto de datos para detectar anomalías, valores faltantes y patrones iniciales. Pandas ofrece herramientas rápidas y poderosas para obtener estadísticas descriptivas y visualizar la calidad de los datos.

  • df.describe(): genera medidas como media, desviación estándar, cuartiles y valores mínimos/máximos para todas las columnas numéricas. Es la forma más rápida de obtener un resumen estadístico.
  • df.info(): muestra el tipo de dato de cada columna y el número de valores no nulos.
  • df.head(): permite inspeccionar las primeras filas y verificar la estructura.

Ejemplo:

import pandas as pd
df = pd.read_csv('ventas.csv')
print(df.describe())

La salida incluye count, mean, std, min, 25%, 50%, 75% y max para cada variable numérica, facilitando la detección de outliers y la comprensión de la distribución.

Fase 3: Preparación de los datos

Una vez que conocemos la calidad de los datos, debemos limpiarlos y transformarlos para que los algoritmos de modelado los consuman sin problemas. A continuación, revisaremos los conceptos clave que aparecen en el cuestionario.

Normalización de texto y manejo de categorías

Los valores inconsistentes en columnas categóricas (por ejemplo, "CDMX", "cdmx " y "Cdmx") generan categorías distintas que distorsionan el análisis. La operación recomendada es:

df['ciudad'] = df['ciudad'].str.strip().str.lower()

Esta línea elimina espacios en blanco al inicio y al final (str.strip()) y convierte todo a minúsculas (str.lower()), garantizando que cada ciudad tenga una única representación.

Máscaras booleanas y operadores lógicos

Para filtrar filas según una condición, Pandas utiliza Series booleanas. Es crucial emplear el operador & (AND bit‑a‑bit) en lugar de la palabra clave and, ya que and solo acepta valores escalares y provocará un error:

# Correcto
mayores_30 = df[df['edad'] > 30]
# Incorrecto
mayores_30 = df[df['edad'] > 30 and df['salario'] > 5000]

El error ocurre porque and espera un único valor booleano, mientras que la máscara es una Serie con varios valores.

Selección de datos con .loc y .iloc

Dos métodos fundamentales para extraer subconjuntos son .loc y .iloc:

  • .loc usa etiquetas de fila y columna (nombres del índice).
  • .iloc usa posiciones numéricas (índices basados en cero).

Ejemplo práctico:

# Seleccionar la fila con etiqueta 'A' y la columna 'ventas'
valor = df.loc['A', 'ventas']
# Seleccionar la primera fila y segunda columna por posición
valor = df.iloc[0, 1]

Manejo de valores faltantes

Decidir entre eliminar una columna o imputar sus valores depende del porcentaje de datos ausentes. Un rango aceptado para la imputación es entre 5 % y 30 %. Por debajo del 5 % la pérdida de información es mínima; por encima del 30 % la imputación puede introducir sesgo significativo.

Detección de outliers con el método IQR

El rango intercuartílico (IQR) se calcula como Q3 - Q1. Los valores que superan Q3 + 1.5·IQR o están por debajo de Q1 - 1.5·IQR se consideran outliers. Por ejemplo, si Q3 = 50 000 y IQR = 15 000, el límite superior será 50 000 + 1.5·15 000 ≈ 73 000. Un ingreso de 950 000 claramente excede este límite y debe tratarse como outlier.

Discretización de variables continuas

Al convertir una variable continua en categorías, pd.qcut() es preferible a pd.cut() porque crea intervalos con aproximadamente el mismo número de observaciones, basándose en cuantiles. Esto equilibra la distribución de los datos en cada bin, facilitando modelos que requieren variables categóricas.

Operaciones de unión (merge) de DataFrames

El método merge() permite combinar tablas según una clave común. Cuando se usa how='inner', el resultado conserva únicamente las filas cuya clave aparece en ambas tablas, es decir, la intersección de los conjuntos.

df_total = df_ventas.merge(df_clientes, on='id_cliente', how='inner')

Este tipo de unión es útil para eliminar registros incompletos antes del modelado.

Resumen de conceptos clave

  • df.describe() → estadísticas descriptivas rápidas.
  • str.strip().str.lower() → normaliza texto categórico.
  • & vs. and → uso de operadores vectorizados en Pandas.
  • .loc vs. .iloc → etiquetas vs. posiciones numéricas.
  • 5 %‑30 % de valores faltantes → rango recomendado para imputación.
  • IQR → regla de 1.5·IQR para detectar outliers.
  • pd.qcut() → discretiza manteniendo conteos similares.
  • merge(..., how='inner') → conserva solo coincidencias en ambas tablas.

Mejores prácticas para SEO en contenido de ciencia de datos

Para que este artículo sea fácilmente encontrado por buscadores, es importante:

  • Incluir palabras clave como CRISP‑DM, Pandas, estadísticas descriptivas, outliers y merge inner en los encabezados (<h2>, <h3>).
  • Utilizar etiquetas semánticas (<strong>, <em>) para resaltar conceptos críticos.
  • Crear listas (<ul>, <li>) que faciliten la lectura y el rastreo de los bots.
  • Enlazar a recursos externos de alta autoridad, como la documentación oficial de Pandas.

Ejercicio práctico integrado

Utiliza el siguiente dataset ficticio clientes.csv y sigue los pasos descritos:

import pandas as pd

# 1. Cargar datos
df = pd.read_csv('clientes.csv')

# 2. Resumen estadístico
print(df.describe())

# 3. Normalizar columna ciudad
df['ciudad'] = df['ciudad'].str.strip().str.lower()

# 4. Filtrar clientes mayores de 30 años
mayores_30 = df[df['edad'] > 30]

# 5. Detectar outliers en ingreso
Q1 = df['ingreso'].quantile(0.25)
Q3 = df['ingreso'].quantile(0.75)
IQR = Q3 - Q1
limite_superior = Q3 + 1.5 * IQR
outliers = df[df['ingreso'] > limite_superior]

# 6. Discretizar edad con qcut
df['edad_bin'] = pd.qcut(df['edad'], q=4, labels=False)

# 7. Unir con tabla de compras (inner join)
compras = pd.read_csv('compras.csv')
df_final = df.merge(compras, on='id_cliente', how='inner')

Al completar este flujo, habrás aplicado los conceptos de CRISP‑DM y las mejores prácticas de manipulación de datos con Pandas.

Conclusión

Dominar las fases de Comprensión y Preparación del proceso CRISP‑DM es esencial para cualquier científico de datos. Pandas ofrece un conjunto de funciones que simplifican la exploración, limpieza y transformación de datos, permitiendo pasar rápidamente a la fase de modelado. Recuerda siempre validar tus decisiones (porcentaje de valores faltantes, detección de outliers, elección de métodos de discretización) y documentar cada paso para reproducibilidad y auditoría.