Asistencia a un gimnasio (datos sucios)
Registro de asistencias a un gimnasio durante 6 meses, con múltiples problemas reales de calidad de datos para limpiar antes de analizar.
Herramientas sugeridas
Sobre este dataset
Este dataset contiene aproximadamente 190 registros de asistencias a un gimnasio durante el primer semestre de 2025. Es un dataset DELIBERADAMENTE SUCIO, pensado para que practiques limpieza profunda antes de poder analizar nada.
Problemas que vas a encontrar: - Fechas en al menos 5 formatos distintos (ISO, DD/MM/YYYY, DD-MM-YYYY, etc.) que hay que unificar. - Nombres de socios con problemas de capitalización (mayúsculas, minúsculas, mezcladas), espacios extra al inicio/final, dobles espacios y tildes inconsistentes. - Misma actividad escrita de muchas formas (por ejemplo: "Musculación", "musculacion", "MUSCULACION", "Musculacion"). - Edades inválidas: vacías, negativas, escritas con letras ("veinticinco"), valores imposibles (como 180 años). - Duración expresada en distintos formatos: "60", "60min", "60 min", "1h", "1.5h", o vacía. - Filas duplicadas exactas y filas completamente vacías.
El objetivo es que practiques el flujo completo de limpieza: detectar problemas, decidir cómo tratarlos, normalizar, y recién después analizar. Es el típico dataset que te tocaría en un trabajo real.
Recomendado para practicar pandas en Python o tidyverse en R. Excel se queda corto para este tipo de limpieza.
Diccionario de columnas
| Columna | Descripción |
|---|---|
| socio_id | Identificador del socio del gimnasio (formato S###). |
| nombre | Nombre del socio. Tiene problemas de capitalización, espacios extra y tildes inconsistentes. |
| edad | Edad del socio. Puede contener valores nulos, negativos, escritos con letras o imposibles. |
| actividad | Actividad realizada (musculación, spinning, yoga, funcional, crossfit, pilates). Escrita de forma inconsistente. |
| fecha | Fecha de la asistencia. Aparece en al menos 5 formatos distintos. |
| duracion | Duración de la sesión. Mezcla de formatos: minutos sin unidad, con sufijo min, horas decimales, vacíos. |
| dias_consecutivos | Cantidad de días consecutivos de asistencia hasta la fecha. Puede estar vacío. |
Vista previa
| socio_id | nombre | edad | actividad | fecha | duracion | dias_consecutivos |
|---|---|---|---|---|---|---|
| S069 | CAMILA RUIZ | 29 | MUSCULACION | 2025/04/02 | 60 min | 1 |
| S060 | Martin Garcia | 21 | CROSSFIT | 28-04-2025 | 0.5h | 10 |
| S029 | Camila Ruiz | 59 | musculacion | 25-02-2025 | 60 min | 3 |
| S008 | TOMAS MOLINA | 74 | Spining | 18-05-2025 | 60 | 10 |
| S020 | FLORENCIA ACOSTA | 31 | musculacion | 2025-02-07 | 75min |
Ejercicios propuestos
Hacé una auditoría inicial de calidad de datos: cantidad de filas totales, filas completamente vacías, filas duplicadas exactas, y porcentaje de nulos por columna.
IntermedioPythonRNormalizá la columna fecha a un formato único (ISO YYYY-MM-DD) detectando automáticamente el formato de cada fila.
AvanzadoPythonRLimpiá la columna actividad para que cada actividad aparezca de una sola forma (por ejemplo: todas como 'Musculación' con tilde y mayúscula inicial). Hacé lo mismo con la columna nombre.
AvanzadoPythonRConvertí la columna duracion a un valor numérico único (en minutos). Decidí qué hacer con los valores nulos: ¿los descartás, los imputás con la mediana, o con la moda por actividad? Justificá tu decisión.
AvanzadoPythonRUna vez limpiado todo el dataset, calculá: cuál es la actividad más popular, cuál es la duración promedio por actividad, y cuál fue el mes con más asistencias en total.
IntermedioPythonR
Origen
Creado por Bunseki Curado para fines educativos. Libre uso para aprender.
Etiquetado como Avanzado en contexto salud.