Pandas: generación de rangos de marcas de tiempo usando Python

Una marca de tiempo es una string de caracteres o datos encriptados o codificados que identifican la hora y la fecha de un evento, generalmente indican la hora y la fecha del día y, a menudo, tienen una precisión de una fracción de segundo. las marcas de tiempo se utilizan para mantener un seguimiento de la información. Cuando se creaba, transmitía, editaba o eliminaba información, se le asignaba una marca de tiempo. Demostremos cómo generar rangos de marcas de tiempo usando python.

Las marcas de tiempo son de la forma:

formato general

AAAA-MM-DD hh:mm:ss

  • Y significa año
  • M significa mes
  • D significa día
  • h representa la hora
  • m significa minutos
  • s significa segundos

Método 1: Usar datetime.timedellta()

Importe paquetes de DateTime y pandas. Tomamos una fecha base que es la fecha de hoy pd.Timestamp.today() . timedelta() que aumenta en pasos de ‘1’ se agrega a la fecha de hoy usando el método datetime.timedelta(). timedelta() toma un día de argumento que es el número de días que debemos incrementar nuestra fecha base. a continuación se muestra el código para generar marcas de tiempo para los próximos 10 días. cambiamos el rango según el requisito.

Python3

# importing packages
import datetime
import pandas as pd
  
n_days = 10
  
# today's date in timestamp
base = pd.Timestamp.today()
  
# calculating timestamps for the next 10 days
timestamp_list = [base + datetime.timedelta(days=x) for x in range(n_days)]
  
# iterating through timestamp_list
for x in timestamp_list:
    print(x)

Producción:

Método 2: Usar el método pd.date_range()

En este enfoque, usamos directamente el método date_range() de la biblioteca de panda. La fecha de inicio es fechahora. today() que es la fecha de hoy. Períodos es el número de períodos a generar. Podemos generar directamente un rango de marcas de tiempo usando este método.

Python3

# importing packages
import pandas as pd
from datetime import datetime
  
  
# creating a range of timestamps
timestamp_list = pd.date_range(datetime.today(), periods=10).tolist()
for i in timestamp_list:
    print(i)
print(type(i))

Producción:

2022-02-20 08:28:35.822503
2022-02-21 08:28:35.822503
2022-02-22 08:28:35.822503
2022-02-23 08:28:35.822503
2022-02-24 08:28:35.822503
2022-02-25 08:28:35.822503
2022-02-26 08:28:35.822503
2022-02-27 08:28:35.822503
2022-02-28 08:28:35.822503
2022-03-01 08:28:35.822503
<class 'pandas._libs.tslibs.timestamps.Timestamp'>

En lugar de usar el parámetro ‘períodos’ en el método pd.date_range(), podemos usar directamente los parámetros de inicio y finalización para especificar las fechas de inicio y finalización. La frecuencia predeterminada de este método es ‘día’, por lo que obtenemos el range() de fechas incrementado en 24 horas.

Python3

# importing packages
import pandas as pd
  
# range of timestamps
timestamp_range = pd.date_range(start="2020-02-20",
                                end="2020-03-01")
for i in date_timestamp:
    print(i)
print(type(i))

Producción:

2020-02-20 00:00:00
2020-02-21 00:00:00
2020-02-22 00:00:00
2020-02-23 00:00:00
2020-02-24 00:00:00
2020-02-25 00:00:00
2020-02-26 00:00:00
2020-02-27 00:00:00
2020-02-28 00:00:00
2020-02-29 00:00:00
2020-03-01 00:00:00
<class 'pandas._libs.tslibs.timestamps.Timestamp'>

Método 3: Usar el método pd.period_range()

El pd.period_range() es similar a pd.date_range() pero devuelve el índice del período, por lo que debemos usar el método to_timestamp() para cambiarlo a valores de marca de tiempo. usamos el parámetro freq para establecer la frecuencia en meses usando la string «M». En los ejemplos mencionados anteriormente, la frecuencia era el día. En este ejemplo, se genera un rango de marcas de tiempo que se incrementan por meses.

Python3

# importing packages
import pandas as pd
import datetime
  
# range of dates
date_range = pd.period_range(
    start=datetime.datetime.today(), periods=10, freq='M')
  
# timestamp range
timestamp_range = [x.to_timestamp() for x in date_range]
  
# iterating through timestamp range
for i in timestamp_range:
    print(i)
print(type(i))

Producción:

2022-02-01 00:00:00
2022-03-01 00:00:00
2022-04-01 00:00:00
2022-05-01 00:00:00
2022-06-01 00:00:00
2022-07-01 00:00:00
2022-08-01 00:00:00
2022-09-01 00:00:00
2022-10-01 00:00:00
2022-11-01 00:00:00
<class 'pandas._libs.tslibs.timestamps.Timestamp'>

Publicación traducida automáticamente

Artículo escrito por isitapol2002 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *