Contenido del curso

NumPy

Pandas

Crear columnas y agrupar ventas en Pandas

Resumen

Transformar columnas en un DataFrame de Pandas es la etapa donde dejas de limpiar datos y empiezas a pensar como científico de datos. Aquí aprendes a crear columnas derivadas, convertir fechas a datetime y agrupar ventas por año y semestre para encontrar insights reales del negocio.

Cómo crear una nueva columna a partir de otras en Pandas

Cuando ya tienes el set limpio, lo siguiente es preguntarte qué columnas adicionales puedes derivar de las existentes. En el ejemplo, el DataFrame tiene cantidad y precio unitario, así que multiplicarlas genera una columna nueva llamada monto total [01:00].

La sintaxis es directa: le indicas a tu variable data el nombre de una columna que aún no existe y le asignas la operación entre las dos columnas originales. Al imprimir head, ya aparece el monto total junto al resto de la información.

¿Cómo creo una columna calculada en Pandas? Asigna data['nueva'] = data['col1'] * data['col2']. Pandas crea la columna automáticamente si el nombre no existe y la rellena fila por fila.

Por qué convertir fechas a datetime antes de analizar series de tiempo

La columna invoice date viene como objeto de texto, lo que limita el análisis. Para trabajarla como serie de tiempo, conviértela con pd.to_datetime() y reemplaza la columna original [02:30].

A simple vista los valores parecen iguales, pero internamente cambia el tipo. Si revisas los dtypes del DataFrame antes y después, pasa de object a datetime64, lo que te habilita extraer año, mes, día y hora de forma nativa.

Eso sí, ten cuidado al sobrescribir columnas: si la conversión falla en alguna fila, puedes perder datos sin darte cuenta. Verifica siempre el resultado con head o revisando nulos.

Cómo desglosar una fecha en año y mes

Una vez que la columna está en formato datetime, accedes a sus componentes con el atributo .dt. Crear las columnas año y mes te da control total para agrupar después [04:00].

  • Año: data['año'] = data['invoice date'].dt.year.
  • Mes: data['mes'] = data['invoice date'].dt.month.
  • Día y hora: aplican el mismo patrón con .dt.day y .dt.hour.

Con estas columnas listas, el DataFrame queda preparado para cualquier agrupación temporal que necesites.

Cómo analizar ventas por año con groupby

El método groupby es el corazón del análisis agregado en Pandas. Para calcular ventas anuales, agrupas por la columna año y aplicas suma sobre monto total [05:30].

En el dataset del ejemplo hay datos de 2010 y 2011, así que el resultado son dos filas con la ganancia total por año. La estructura es:

python ventas_por_año = data.groupby('año')['monto_total'].sum()

¿Qué hace groupby en Pandas? Agrupa filas que comparten un mismo valor en una columna y te permite aplicar operaciones como suma, promedio o conteo sobre cada grupo.

Cómo calcular ventas por semestre con una función lambda

Para segmentar por semestre, primero creas una columna que clasifique cada mes en 1 o 2. Aquí entra una función lambda aplicada sobre la columna mes [07:00].

La lógica es simple: si el mes es menor o igual a 6, pertenece al primer semestre; en caso contrario, al segundo.

python data['semestre'] = data['mes'].apply(lambda x: 1 if x <= 6 else 2)

Luego agrupas por año y semestre, sumando el monto total. El resultado muestra que 2010 solo tiene ventas en el segundo semestre, mientras que 2011 cubre ambos.

Errores comunes al ejecutar celdas en notebooks

Un problema típico es olvidar correr la celda donde creas la columna nueva antes de usarla en otra. Si el kernel no la registró, groupby falla porque la columna no existe todavía. La solución es ejecutar las celdas en orden y volver a correr la que dio error.

Qué insights puedes extraer al transformar columnas

Crear columnas derivadas no es un ejercicio decorativo: cada nueva variable abre una pregunta de negocio distinta. Con monto total mides ingresos, con año y mes detectas estacionalidad, con semestre comparas mitades de año.

  • Ventas anuales: te dicen el crecimiento total entre periodos.
  • Ventas semestrales: revelan tendencias dentro del mismo año.
  • Ventas mensuales o trimestrales: muestran picos y valles para planear inventario o campañas.

El reto que te queda es replicar este flujo para calcular ventas trimestrales y mensuales usando la misma lógica de lambda y groupby. ¿Cómo lo resolverías tú? Cuéntamelo en los comentarios.