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

Analytics Lane lanza la versión 1.4 del laboratorio con nuevas herramientas de conversión y modelos avanzados de CLV

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.4, que…

13 horas ago

Lanzamos el video de ScoreFlow: crea scorecards de crédito de forma ágil y sin IT

En Analytics Lane seguimos apostando por desarrollar herramientas que simplifiquen el trabajo de analistas y…

3 días ago

Data Leakage en Credit Scoring: El Error que Invalida tu Modelo

Imagina que construyes un scorecard con un Gini de 0,85. Un resultado extraordinario, muy por…

4 días ago

Analytics Lane lanza ScoreFlow, un SaaS para construir y desplegar scorecards de crédito

En Analytics Lane seguimos evolucionando nuestras herramientas y damos un paso más con el lanzamiento…

1 semana ago

This website uses cookies.