English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Timedelta in Pandas

Beispiel für Operationen mit Pandas Timedelta

Zeitsteigerung ist die Zeitdifferenz, in der Differenzeneinheit ausgedrückt, z.B. Tag, Stunde, Minute, Sekunde. Sie können sowohl positiv als auch negativ sein.

Durch Übergeben eines Zeichenkettentextes können wir ein timedelta-Objekt erstellen.

Zeichenkette

Wir können Timedelta-Objekte mit verschiedenen Parametern erstellen, wie z.B.-

import pandas as pd
print(pd.Timedelta('2 days 2 Stunden 15 Minuten 30 Sekunden'))

The running results are as follows:

 2 Tage 02:15:30

Ganze Zahl

Durch Übergeben eines整数值 für die Einheit wird ein Timedelta-Objekt erstellt.

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

The running results are as follows:

 0 Tage 06:00:00

Datenabstand

Datenabstand (z.B.-Woche, Tag, Stunde, Minute, Sekunde, Millisekunde, Mikrosekunde, Nanosekunde) können auch bei der Konstruktion verwendet werden.

import pandas as pd
print(pd.Timedelta(days=2))

The running results are as follows:

2 days 00:00:00

to_timedelta()

Verwenden Sie pd.to_timedelta, um Skalare, Arrays, Listen oder Sequenzen aus anerkannten timedelta-Formaten/Der Wert wird in den Typ Timedelta umgewandelt. Wenn der Eingang eine Series ist, wird eine Series konstruiert; wenn der Eingang ein Skalar ist, wird ein Skalar konstruiert; sonst wird ein TimedeltaIndex ausgegeben.

import pandas as pd
print(pd.Timedelta(days=2))

The running results are as follows:

2 days 00:00:00

Specific Operations

You can operate on Series / DataFrame operations, and by comparing datetime64 [ns] Series or Timestamps to perform subtraction operations to construct timedelta64 [ns] Series .
Now let's create a DataFrame with Timedelta and datetime objects and perform some arithmetic operations on it-

 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)

The running results are as follows:

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

Addition Operation

 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)

The running results are as follows:

         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

Subtraction Operation

 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)

The running results are as follows:

         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