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