Cuando las fechas son protagonistas, Pandas ofrece utilidades muy poderosas. Podés convertir texto a fechas, usar un índice temporal y resumir datos por períodos.
En este tema trabajaremos sobre un DataFrame pequeño para ilustrar los pasos fundamentales.
pd.to_datetime
)Los datasets suelen traer fechas como texto. Con pd.to_datetime() las transformás en objetos datetime64[ns]
listos para operaciones temporales.
Convertir strings a fechas
import pandas as pd
datos = {
"Fecha": ["2024-01-01", "2024-01-05", "2024-02-10", "2024-02-15", "2024-03-01"],
"Ventas": [100, 120, 90, 150, 200]
}
df = pd.DataFrame(datos)
df["Fecha"] = pd.to_datetime(df["Fecha"])
print(df.dtypes)
Salida:
Fecha datetime64[ns]
Ventas int64
dtype: object
Al establecer la fecha como índice accedés a períodos completos con expresiones intuitivas.
Usar la fecha como índice
df = df.set_index("Fecha")
print(df)
Salida:
Ventas
Fecha
2024-01-01 100
2024-01-05 120
2024-02-10 90
2024-02-15 150
2024-03-01 200
Selección puntual y rangos
print(df.loc["2024-02-10"])
print(df.loc["2024-01":"2024-02"])
Salida:
Ventas 90
Name: 2024-02-10 00:00:00, dtype: int64
Ventas
Fecha
2024-01-01 100
2024-01-05 120
2024-02-10 90
2024-02-15 150
2024-01
devuelven todo el mes de enero.Con resample() reagrupás datos por período (día, semana, mes, trimestre, año) y aplicás funciones como mean()
, sum()
o count()
.
Promedio mensual de ventas
print(df.resample("ME").mean())
Salida:
Ventas
Fecha
2024-01-31 110.0
2024-02-29 120.0
2024-03-31 200.0
Otras operaciones habituales
print(df.resample("W").sum())
print(df.resample("ME").count())
print(df.resample("ME").agg(lambda x: x.max() - x.min()))
D
(día), W
(semana), ME
(fin de mes), Q
(fin de trimestre), A
(fin de año).pd.to_datetime()
convierte cadenas en fechas reales.resample()
reagrupa por períodos y admite funciones como mean
, sum
o count
.