Pandas python - Timedelta

Les timedeltas sont des différences de temps, exprimées en unités de différence, par exemple, jours, heures, minutes, secondes. Ils peuvent être à la fois positifs et négatifs.

Nous pouvons créer des objets Timedelta en utilisant divers arguments comme indiqué ci-dessous -

Chaîne

En passant une chaîne littérale, nous pouvons créer un objet timedelta.

import pandas as pd

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

Ses output est comme suit -

2 days 02:15:30

Entier

En passant une valeur entière avec l'unité, un argument crée un objet Timedelta.

import pandas as pd

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

Ses output est comme suit -

0 days 06:00:00

Décalages de données

Les décalages de données tels que: semaines, jours, heures, minutes, secondes, millisecondes, microsecondes, nanosecondes peuvent également être utilisés dans la construction.

import pandas as pd

print pd.Timedelta(days=2)

Ses output est comme suit -

2 days 00:00:00

to_timedelta ()

Utilisation du niveau supérieur pd.to_timedelta, vous pouvez convertir un scalaire, un tableau, une liste ou une série d'un format / valeur timedelta reconnu en un type Timedelta. Il construira Series si l'entrée est une Series, un scalaire si l'entrée est de type scalaire, sinon produira unTimedeltaIndex.

import pandas as pd

print pd.Timedelta(days=2)

Ses output est comme suit -

2 days 00:00:00

Opérations

Vous pouvez opérer sur Series / DataFrames et construire timedelta64[ns] Série à travers des opérations de soustraction sur datetime64[ns] Série ou horodatage.

Créons maintenant un DataFrame avec des objets Timedelta et datetime et effectuons des opérations arithmétiques dessus -

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

Ses output est comme suit -

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

Opérations d'addition

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

Ses output est comme suit -

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

Opération de soustraction

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

Ses output est comme suit -

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