Ich möchte eine while-Schleife verwenden, um den Zeitunterschied zwischen der aktuellen Zeile und der vorherigen Zeile in einem Pandas-Datenrahmen zu ermitteln. Um etwas Kontext zu machen, hier ist mein Beispielcode:Objekt als Datetime vor While-Schleife speichern
counter = len(data)-1
last = pd.to_datetime(data['time'], infer_datetime_format=True)
current = last
while((last-current).seconds() <= 60 and counter>-1):
# Do something
data[counter]
Allerdings erhielt ich diese Fehlermeldung:
AttributeError: 'Series' object has no attribute 'seconds'
Von dem, was ich verstehe, ist datetime
Funktionen nicht mit Pandas Serie arbeiten, so gibt es bei mindestens zwei Möglichkeiten, mit der Lösung diese gehen zu:
1) Shop last
als Datum Objekt Vorteil der .seconds()
datetime
Funktion zu übernehmen
2) Verwenden Sie die Pandas Version der (last-current).seconds()
datetime
Funktion
Jede Hilfe ist sehr zu schätzen!
angebaute Datenstruktur Beispiel
{'time': {0: Timestamp('2016-03-28 23:23:12'), 1: Timestamp('2016-03-28 23:23:32'), 2: Timestamp('2016-03-28 23:23:52'), 3: Timestamp('2016-03-28 23:24:12'), 4: Timestamp('2016-03-28 23:22:12'), 5: Timestamp('2016-03-28 23:24:32'), 6: Timestamp('2016-03-28 23:24:52'), 7: Timestamp('2016-03-28 23:25:32'), 8: Timestamp('2016-03-28 23:30:12'), 9: Timestamp('2016-03-28 23:29:12')}, 'Origin': {0: 'Boston', 1: 'New York', 2: 'Boston', 3: 'New York', 4: 'Hawaii', 5: 'Hawaii', 6: 'Miami', 7: 'Las Vegas', 8: 'Hawaii', 9: 'New York'}, 'Destination': {0: 'Miami', 1: 'Miami', 2: 'Miami', 3: 'Boston', 4: 'Boston', 5: 'New York', 6: 'Las Vegas', 7: 'Las Vegas', 8: 'Las Vegas', 9: 'Los Angeles'}}
Was die Struktur Ihrer Daten? Können wir eine Probe sehen? –
Wenn Sie bereits einen DataFrame oder eine Serie haben, könnten Sie bitte die Ausgabe von 'data.head (10) .to_dict()' posten? –