Python

Cómo seleccionar elementos entre dos fechas con Pandas

La manipulación de datos con fechas es una parte crucial del análisis de datos, por lo que es de extrañar que en Pandas existan herramientas para ello. Uno de los problemas que nos podemos encontrar a la hora de preparar los datos es cómo seleccionar elementos entre dos fechas. En esta entrada se mostrarán los pasos para conseguirlo, utilizando para ello un conjunto de datos de ejemplo.

Creación de un conjunto de datos de ejemplo

En primer lugar, se creará un conjunto de datos de ejemplo que contenga una columna con fechas y otra con valores aleatorios. Para lo que, en el siguiente código, se usará la función date_range().

import pandas as pd
import numpy as np

# Fijar la semilla para reproducibilidad
np.random.seed(42)

# Crear un rango de fechas
fechas = pd.date_range('2024-01-01', '2024-01-10', freq='D')

# Crear un DataFrame de ejemplo con fechas y valores aleatorios
data = {'Fecha': fechas, 'Valor': np.random.randint(0, 100, size=len(fechas))}
df = pd.DataFrame(data)

# Mostrar el DataFrame
print(df)
       Fecha  Valor
0 2024-01-01     51
1 2024-01-02     92
2 2024-01-03     14
3 2024-01-04     71
4 2024-01-05     60
5 2024-01-06     20
6 2024-01-07     82
7 2024-01-08     86
8 2024-01-09     74
9 2024-01-10     74

Obteniendo como resultado un DataFrame con diez registros con fechas entre el uno de enero de 2024 y el diez de enero de 2024.

Seleccionar elementos entre dos fechas con Pandas

Ahora que se dispone de un conjunto de datos se puede este para comprender cómo se puede realizar la selección. Supongamos que se desea seleccionar los registros que son posteriores a una fecha dada, por ejemplo, el tres de enero de 2024. Para lo que se puede crear una máscara booleana como se muestra en el siguiente ejemplo

# Seleccionar elementos posterior a una fecha dada
fecha_inicio = '2024-01-03'

seleccion = df[(df['Fecha'] >= fecha_inicio)]

# Mostrar el DataFrame
print(seleccion)
       Fecha  Valor
2 2024-01-03     14
3 2024-01-04     71
4 2024-01-05     60
5 2024-01-06     20
6 2024-01-07     82
7 2024-01-08     86
8 2024-01-09     74
9 2024-01-10     74

Con lo que resulta en un nuevo DataFrame con los valores que cumple la condición deseada. Si se desea filtrar también en base a la fecha de finalización, se puede crear una máscara más compleja en la que se combinen los casos que son posteriores a la fecha inicial y anteriores a la final. Esto en lo que se muestra en el siguiente ejemplo donde se selecciona los registros entre tres de enero y el siete de enero.

# Seleccionar elementos entre dos fechas dadas
fecha_inicio = '2024-01-03'
fecha_fin = '2024-01-07'

seleccion = df[(df['Fecha'] >= fecha_inicio) & (df['Fecha'] <= fecha_fin)]

# Mostrar el DataFrame
print(seleccion)
       Fecha  Valor
2 2024-01-03     14
3 2024-01-04     71
4 2024-01-05     60
5 2024-01-06     20
6 2024-01-07     82

La máscara se puede hacer tan compleja como sea necesario, pudiendo combinar con otros criterios como un valor mínimo o máximo de cualquier registro.

Conclusiones

En esta entrada se ha explicado los pasos para seleccionar elementos en un DataFrame de Pandas entre dos fechas. Para lo que básicamente se crea una máscara booleana que posteriormente se usa para seleccionar los datos.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Pandas

Recent Posts

Por Qué las Contraseñas Largas son más Seguras que las Complejas

"Tu contraseña debe tener al menos 8 caracteres, una mayúscula, un número y un símbolo…

5 días ago

Gini, KS y AUC: Cómo Medir la Calidad de un Modelo de Credit Scoring

Cuando un analista de riesgo presenta un nuevo scorecard ante el comité de dirección, la…

7 días ago

Curiosidad: De dónde vienen foo, bar y foobar

Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos…

2 semanas ago

BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas

Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a…

2 semanas ago

Errores habituales al trabajar con DataFrames grandes en Pandas (y cómo evitarlos)

Hay un momento muy concreto en la vida de casi todo análisis: el código que…

3 semanas ago

Champion vs Challenger: Cómo los Bancos Validan Modelos Nuevos antes de Ponerlos en Producción

Has construido un nuevo modelo de credit scoring. Las métricas de validación son mejores que…

3 semanas ago

This website uses cookies.