Python Pandas - Timedelta

Timedeltas son diferencias en los tiempos, expresadas en unidades de diferencia, por ejemplo, días, horas, minutos, segundos. Pueden ser tanto positivos como negativos.

Podemos crear objetos Timedelta usando varios argumentos como se muestra a continuación:

Cuerda

Al pasar un literal de cadena, podemos crear un objeto timedelta.

import pandas as pd

print pd.Timedelta('2 days 2 hours 15 minutes 30 seconds')

Sus output es como sigue -

2 days 02:15:30

Entero

Al pasar un valor entero con la unidad, un argumento crea un objeto Timedelta.

import pandas as pd

print pd.Timedelta(6,unit='h')

Sus output es como sigue -

0 days 06:00:00

Compensación de datos

Las compensaciones de datos como: semanas, días, horas, minutos, segundos, milisegundos, microsegundos, nanosegundos también se pueden utilizar en la construcción.

import pandas as pd

print pd.Timedelta(days=2)

Sus output es como sigue -

2 days 00:00:00

to_timedelta ()

Usando el nivel superior pd.to_timedelta, puede convertir un escalar, una matriz, una lista o una serie de un formato / valor de timedelta reconocido en un tipo de Timedelta. Construirá Series si la entrada es una Serie, un escalar si la entrada es similar a un escalar; de lo contrario, generará unaTimedeltaIndex.

import pandas as pd

print pd.Timedelta(days=2)

Sus output es como sigue -

2 days 00:00:00

Operaciones

Puede operar en Series / DataFrames y construir timedelta64[ns] Series mediante operaciones de resta en datetime64[ns] Serie o marcas de tiempo.

Creemos ahora un DataFrame con Timedelta y objetos de fecha y hora y realicemos algunas operaciones aritméticas en él:

import pandas as pd

s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D'))
td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ])
df = pd.DataFrame(dict(A = s, B = td))

print df

Sus output es como sigue -

A      B
0  2012-01-01 0 days
1  2012-01-02 1 days
2  2012-01-03 2 days

Operaciones de adición

import pandas as pd

s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D'))
td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ])
df = pd.DataFrame(dict(A = s, B = td))
df['C']=df['A']+df['B']

print df

Sus output es como sigue -

A      B          C
0 2012-01-01 0 days 2012-01-01
1 2012-01-02 1 days 2012-01-03
2 2012-01-03 2 days 2012-01-05

Operación de resta

import pandas as pd

s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D'))
td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ])
df = pd.DataFrame(dict(A = s, B = td))
df['C']=df['A']+df['B']
df['D']=df['C']+df['B']

print df

Sus output es como sigue -

A      B          C          D
0 2012-01-01 0 days 2012-01-01 2012-01-01
1 2012-01-02 1 days 2012-01-03 2012-01-04
2 2012-01-03 2 days 2012-01-05 2012-01-07