Mein Pandas-Datenrahmen besteht aus einer Spalte "timeStamp", deren Elemente vom Typ datetime.datetime sind. Ich versuche, die Differenz zwischen zwei aufeinander folgenden Zeilen dieser Spalte zu ermitteln, um die in Sekunden verbrachte Zeit zu ermitteln. Ich benutze den folgenden Code dafür.
df["Time"] = df["timeStamp"].diff(0).dt.total_seconds()
Im Allgemeinen funktioniert es einwandfrei, aber ich erhalte aufgrund dieser Operation in einigen Fällen immer wieder 0.0, auch wenn dies nicht der Fall ist.
Beispielwerte, die zu 0.0 führen:
import pandas as pd
import datetime
import numpy as np
df = pd.DataFrame({'S.No.': [1, 2, 3, 4], 'ABC': [datetime.datetime(2019,2,25,11,49,50), datetime.datetime(2019,2,25,11,50,0),datetime.datetime(2019,2,25,11,50,7),datetime.datetime(2019,2,25,11,50,12)]})
df["Time"] = df["ABC"].diff(0).dt.seconds
print df
Hinweis: Verwenden von Python2.7
Versuche dies:
print(df["timestamp"].diff().fillna(0).dt.seconds)
0 0
1 10
2 7
3 5
df['difference']=df["timestamp"].diff().fillna(0).dt.seconds
print(df)
timestamp difference
0 2019-02-25 11:49:50 0
1 2019-02-25 11:50:00 10
2 2019-02-25 11:50:07 7
3 2019-02-25 11:50:12 5
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen