10  El objeto datetime en Pandas

En el análisis de series temporales con Pandas, la comprensión de los tipos de objetos de tiempo (datetime) es fundamental. Ahora, exploraremos cómo los tipos de objetos como datetime64, Timestamp, DateOffset, Timedelta y Period, son esenciales para trabajar con fechas y horas de manera precisa y eficiente en Pandas.

Los objetos temporales en Pandas son el fundamento para el análisis de series temporales. A través de esta sesión, descubriremos la importancia de estos tipos de objetos y cómo son indispensables para una gestión precisa y eficiente del tiempo, ofreciendo las herramientas fundamentales para un análisis temporal.

import pandas as pd
f = "../data/Cuernavaca_1dia_comas.csv"
cuerna = pd.read_csv(
    f,
    index_col=0,
    parse_dates=True
)
cuerna.index
DatetimeIndex(['2012-01-01 00:00:00', '2012-01-01 01:00:00',
               '2012-01-01 02:00:00', '2012-01-01 03:00:00',
               '2012-01-01 04:00:00', '2012-01-01 05:00:00',
               '2012-01-01 06:00:00', '2012-01-01 07:00:00',
               '2012-01-01 08:00:00', '2012-01-01 09:00:00',
               '2012-01-01 10:00:00', '2012-01-01 11:00:00',
               '2012-01-01 12:00:00', '2012-01-01 13:00:00',
               '2012-01-01 14:00:00', '2012-01-01 15:00:00',
               '2012-01-01 16:00:00', '2012-01-01 17:00:00',
               '2012-01-01 18:00:00', '2012-01-01 19:00:00',
               '2012-01-01 20:00:00', '2012-01-01 21:00:00',
               '2012-01-01 22:00:00', '2012-01-01 23:00:00'],
              dtype='datetime64[ns]', name='tiempo', freq=None)
type(cuerna.index)
pandas.core.indexes.datetimes.DatetimeIndex
pd.to_datetime('2012-01-01 22:00:00')
Timestamp('2012-01-01 22:00:00')
type(pd.to_datetime('2012-01-01 22:00:00'))
pandas._libs.tslibs.timestamps.Timestamp
cuerna.index[0] # Si sacamos un elemento del datetimeindex obtenemos un timestamp
Timestamp('2012-01-01 00:00:00')
pd.to_datetime('2012-01-01 22:00:00') + pd.DateOffset(years=1)
Timestamp('2013-01-01 22:00:00')
pd.Period('2012-01-01',freq="D",month=2) 
Period('2012-01-01', 'D')
pd.to_datetime('2012-01-02 22:00:00')  - pd.to_datetime('2012-01-01')
Timedelta('1 days 22:00:00')
pd.to_datetime('2012-01-02')  + pd.Timedelta('3D2h30Min5S')
Timestamp('2012-01-05 02:30:05')