Python Pandas - Timedelta

Le timedeltas sono differenze di tempo, espresse in unità di differenza, ad esempio giorni, ore, minuti, secondi. Possono essere sia positivi che negativi.

Possiamo creare oggetti Timedelta usando vari argomenti come mostrato di seguito -

Corda

Passando una stringa letterale, possiamo creare un oggetto timedelta.

import pandas as pd

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

Suo output è il seguente -

2 days 02:15:30

Numero intero

Passando un valore intero con l'unità, un argomento crea un oggetto Timedelta.

import pandas as pd

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

Suo output è il seguente -

0 days 06:00:00

Offset dati

Nella costruzione possono essere utilizzati anche offset di dati come settimane, giorni, ore, minuti, secondi, millisecondi, microsecondi, nanosecondi.

import pandas as pd

print pd.Timedelta(days=2)

Suo output è il seguente -

2 days 00:00:00

to_timedelta ()

Utilizzando il livello superiore pd.to_timedelta, puoi convertire uno scalare, un array, un elenco o una serie da un formato / valore timedelta riconosciuto in un tipo Timedelta. Costruirà Series se l'input è una Series, uno scalare se l'input è di tipo scalare, altrimenti produrrà unTimedeltaIndex.

import pandas as pd

print pd.Timedelta(days=2)

Suo output è il seguente -

2 days 00:00:00

Operazioni

Puoi operare su Series / DataFrames e costruire timedelta64[ns] Serie tramite operazioni di sottrazione su datetime64[ns] Serie o timestamp.

Creiamo ora un DataFrame con oggetti Timedelta e datetime ed eseguiamo alcune operazioni aritmetiche su di esso -

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

Suo output è il seguente -

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

Operazioni di addizione

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

Suo output è il seguente -

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

Operazione di sottrazione

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

Suo output è il seguente -

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