Crear una lista de rango de fechas en Python

Fariba Laiq 10 octubre 2023
  1. Usando pandas para crear una lista de rango de fechas en Python
  2. Crear la lista de rango de fechas manualmente en Python
Crear una lista de rango de fechas en Python

Presentaremos algunos métodos para generar una lista de un rango de fechas. Una forma de hacerlo es utilizar la biblioteca pandas. Pandas tiene apoyo directo para lograr la tarea. La otra forma es diseñar tu propia lógica manualmente usando for loop para generar las fechas.

Veremos algunos ejemplos, como crear la lista de un rango de fechas ingresando la fecha de inicio y k días después de eso o podemos ingresar la fecha de inicio y la fecha de finalización.

Usando pandas para crear una lista de rango de fechas en Python

Usaremos la función date_range() de pandas en la que pasaremos la fecha de inicio y el número de días posteriores (conocidos como periodos). Aquí también hemos utilizado la biblioteca datetime para formatear la fecha de modo que podamos generar la fecha en este formato DD-MM-YY. También podemos definir una marca de tiempo junto con la fecha.

Códigos de ejemplo:

En este ejemplo, estamos pasando la fecha de inicio en el formato de DD-MM-YY y puntos. Entonces, en la salida, podemos ver la lista de un rango de días a partir de la fecha de inicio y la cantidad de periods después de eso.

# python 3.x
import datetime
import pandas as pd

start = datetime.datetime.strptime("01-12-2021", "%d-%m-%Y")
date_generated = pd.date_range(start, periods=5)
print(date_generated.strftime("%d-%m-%Y"))

Producción :

Index(['01-12-2021', '02-12-2021', '03-12-2021', '04-12-2021', '05-12-2021'], dtype='object')

Ahora veremos otro ejemplo en el que pasaremos la fecha de inicio y la fecha de finalización. El programa generará el rango de fechas entre estas dos fechas.

# python 3.x
import datetime
import pandas as pd

start = datetime.datetime.strptime("01-12-2021", "%d-%m-%Y")
end = datetime.datetime.strptime("07-12-2021", "%d-%m-%Y")
date_generated = pd.date_range(start, end)
print(date_generated.strftime("%d-%m-%Y"))

Producción :

Index(['01-12-2021', '02-12-2021', '03-12-2021', '04-12-2021', '05-12-2021',
       '06-12-2021', '07-12-2021'],
      dtype='object')

Crear la lista de rango de fechas manualmente en Python

Con la ayuda del bucle for y timedelta(), podemos generar la lista manualmente. timedelta() es una función definida en la biblioteca datetime. Aquí delta significa diferencia. Con su ayuda, podemos sumar o restar delta con una fecha para obtener la fecha siguiente o anterior, respectivamente. Digamos que tenemos una fecha 01-12-2021. Ahora, si le sumamos 1, nuestra fecha sería 12-02-2021. Usaremos esa lógica en el bucle for. Se itera el bucle for, y agregaremos la variable con la fecha de inicio para obtener la siguiente fecha, y luego agregaremos la fecha generada actualmente a nuestra lista hasta que obtengamos nuestro rango de fechas completo.

Código de ejemplo:

# python 3.x
import datetime

start = datetime.date(2021, 12, 10)
periods = 5
daterange = []
for day in range(periods):
    date = (start + datetime.timedelta(days=day)).isoformat()
    daterange.append(date)
print(daterange)

Producción :

['2021-12-10', '2021-12-11', '2021-12-12', '2021-12-13', '2021-12-14']
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Artículo relacionado - Python DateTime