Transformar un dataset limpio en información útil es el paso que separa la preparación de datos del verdadero análisis. A partir de operaciones simples como multiplicar columnas, convertir tipos de dato y agrupar registros, puedes obtener indicadores de negocio listos para la toma de decisiones. Aquí se explora cómo lograrlo con Pandas, paso a paso.
¿Cómo crear nuevas columnas a partir de las existentes?
Una vez que el dataset está limpio, el siguiente movimiento es pensar qué nuevas columnas pueden derivarse de las que ya existen. En este caso, se cuenta con una columna de cantidad y otra de precio unitario, lo que permite generar el monto total multiplicando ambas [1:00].
python
data_limpia['monto_total'] = data_limpia['cantidad'] * data_limpia['precio_unitario']
data_limpia.head()
- La nueva columna se crea asignando un nombre que aún no existe en el dataframe.
- La operación se realiza de forma vectorizada, es decir, se aplica a cada fila automáticamente.
- Visualizar con
head() permite confirmar que el resultado es correcto.
¿Por qué convertir fechas al formato datetime?
El dataset contiene una columna llamada invoice date que inicialmente Pandas interpreta como un simple objeto de texto. Para trabajar con series de tiempo, es necesario convertirla al tipo datetime [2:07].
python
data_limpia['invoice_date'] = pd.to_datetime(data_limpia['invoice_date'])
A simple vista los datos parecen iguales, pero internamente el tipo cambia. Puedes verificarlo con dtypes: antes aparecía como object y después como datetime64 [3:07]. Este cambio es fundamental porque habilita el acceso a propiedades como .dt.year y .dt.month.
¿Cómo desglosar una fecha en año, mes y más?
Con la columna ya en formato datetime, se pueden extraer componentes individuales y crear columnas adicionales [3:40].
python
data_limpia['año'] = data_limpia['invoice_date'].dt.year
data_limpia['mes'] = data_limpia['invoice_date'].dt.month
- También es posible extraer el día o la hora si el análisis lo requiere.
- Estas nuevas columnas permiten realizar agrupaciones temporales más adelante.
¿Cómo agrupar datos para obtener ventas por año y semestre?
Con las columnas de año y monto total disponibles, el método groupby permite calcular las ventas totales por año [5:00].
python
ventas_por_año = data_limpia.groupby('año')['monto_total'].sum()
ventas_por_año
En este dataset hay registros de 2010 y 2011, así que el resultado muestra la ganancia acumulada de cada periodo.
¿Cómo calcular ventas por semestre usando una función lambda?
Para un análisis semestral, primero se necesita una columna que indique a qué semestre pertenece cada registro. Esto se logra aplicando una función lambda sobre la columna de mes [6:15].
python
data_limpia['semestre'] = data_limpia['mes'].apply(lambda x: 1 if x <= 6 else 2)
- Los meses del 1 al 6 se asignan al semestre 1.
- Los meses del 7 al 12 se asignan al semestre 2.
Después se agrupa por año y semestre simultáneamente [7:05].
python
ventas_por_semestre = data_limpia.groupby(['año', 'semestre'])['monto_total'].sum()
ventas_por_semestre
Un error frecuente al trabajar con notebooks es olvidar ejecutar la celda donde se crea la nueva columna antes de utilizarla. Si aparece un error, basta con correr las celdas en orden [7:45].
¿Qué significa estar en el rol de científico de datos?
Todo lo anterior refleja la tercera etapa del flujo de trabajo: después de la limpieza, el científico de datos evalúa qué transformaciones aportan valor, crea columnas derivadas y genera dataframes resumidos que revelan insights del negocio [8:15]. Los resultados obtenidos, como ventas anuales o semestrales, son la base para reportes y visualizaciones.
El reto propuesto es aplicar la misma lógica para calcular ventas trimestrales y mensuales. Comparte tu solución en los comentarios.