Módulo 3 · Clase 3.02 · Lectura y práctica
Pandas: Series y DataFrames
Objetivo: construir y explorar tablas, seleccionar operaciones y resumir ingresos por sucursal. Una fila representa una operación; una operación puede contener varias unidades. Datos sintéticos, importes en PYG.
1. Construir una tabla
Una Series representa una columna con índice. Un DataFrame organiza columnas en una tabla. Ejecutá este ejemplo autocontenido en Jupyter o VS Code:
import pandas as pd
df = pd.DataFrame({
'operacion': ['V001', 'V002', 'V003', 'V004', 'V005', 'V006'],
'sucursal': ['Centro', 'San Lorenzo', 'Centro', 'Luque', 'San Lorenzo', 'Luque'],
'producto': ['Teclado', 'Mouse', 'Monitor', 'Teclado', 'Monitor', 'Mouse'],
'unidades': [2, 3, 1, 4, 2, 5],
'precio_unitario': [120000, 60000, 900000, 120000, 900000, 60000]
})
print(df.head())
df.info()
print(df.describe())
print(type(df['unidades'])) # Series
print(type(df[['unidades']])) # DataFrame2. Seleccionar y calcular
.loc selecciona mediante etiquetas o condiciones; .iloc selecciona posiciones. Al filtrar con varias condiciones, usá paréntesis y el operador &.
df['importe'] = df['unidades'] * df['precio_unitario']
print(df.loc[df['importe'] >= 500000, ['operacion', 'importe']])
print(df.iloc[:2, :3])
print(df.loc[(df['sucursal'] == 'Luque') & (df['unidades'] >= 4)])3. Agrupar y conciliar
resumen = df.groupby('sucursal', as_index=False).agg(
operaciones=('operacion', 'count'),
unidades=('unidades', 'sum'),
ingresos=('importe', 'sum'))
print(resumen.sort_values('ingresos', ascending=False))
assert resumen['ingresos'].sum() == 3900000
assert df['operacion'].is_uniqueCentro: G. 1.140.000; San Lorenzo: G. 1.980.000; Luque: G. 780.000. Contar filas mide operaciones; sumar unidades mide artículos vendidos. Al agrupar se pierde el detalle de cada operación.
Práctica
- Calculá ingresos por producto y ordenalos de mayor a menor.
- Calculá el promedio del importe por operación para cada sucursal.
- Explicá por qué Luque tiene dos operaciones pero nueve unidades.
- Redactá dos hallazgos y aclará que corresponden a datos ficticios.
Ver solución
print(df.groupby('producto')['importe'].sum().sort_values(ascending=False))
# Monitor 2700000; Teclado 720000; Mouse 480000
print(df.groupby('sucursal')['importe'].mean())
# Centro 570000; Luque 390000; San Lorenzo 990000Fuentes oficiales verificadas
Consulta: 14/10/2026. Ejemplos originales.
Materiales descargables del Módulo 3
Descargar notebooks, datos y evaluación (ZIP)
Descomprimí el paquete. Incluye tres cuadernos .ipynb con ejercicios y soluciones, dos CSV sintéticos, guía docente, evaluación con rúbrica y referencias oficiales verificadas. Abrí el cuaderno de esta clase y ejecutá las celdas en orden desde esa carpeta. Consultá LEEME.md para preparar el entorno.
