Datetime in pandas dataframe wird nicht subtrahieren von jeder anderen
Ich bin auf der Suche nach dem Unterschied der Zeiten zwischen zwei Spalten in ein pandas dataframe sowohl im datetime-format.
Nachfolgend finden Sie einige der Daten im dataframe und der code, den ich verwendet wurde. Ich habe dreifach geprüft, dass diese zwei Spalten dtypes sind datetime64.
Meine Daten:
date_updated date_scored
2016-03-30 08:00:00.000 2016-03-30 08:00:57.416
2016-04-07 23:50:00.000 2016-04-07 23:50:12.036
Mein code:
data['date_updated'] = pd.to_datetime(data['date_updated'],
format='%Y-%m-%d %H:%M:%S')
data['date_scored'] = pd.to_datetime(data['date_scored'],
format='%Y-%m-%d %H:%M:%S')
data['Diff'] = data['date_updated'] - data['date_scored']
Die Fehlermeldung die ich erhalte:
TypeError: data type "datetime" not understood
Jede Hilfe würde geschätzt, danke!
Meiner Arbeit um Lösung:
for i in raw_data[:10]:
scored = i.date_scored
scored_date = pd.to_datetime(scored, format='%Y-%m-%d %H:%M:%S')
if type(scored_date) == "NoneType":
pass
elif scored_date.year >= 2016:
extracted = i.date_extracted
extracted = pd.to_datetime(extracted, format='%Y-%m-%d %H:%M:%S')
bank = i.bank.name
diff = scored - extracted
datum = [str(bank), str(extracted), str(scored), str(diff)]
data.append(datum)
else:
pass
- welche version von pandas sind verwenden Sie? Auch, sind Sie sicher, Sie sind der Subtraktion einzelner Termine? Ihr Kodex regt an, du bist der Subtraktion DateTimeIndex Objekte, in dem Fall
data['date_updated'].difference(data['date_scored'])
würde besser dienen - Funktionierte gut für mich... auch denke ich nicht, dass müssen Sie die
format
parameter. pandas herausfinden, dass format. - Ich ließ den format-parameter und die strings umgewandelt datetime-format nett, aber ich bekomme immer noch TypeError: Datentyp "datetime" nicht verstanden, bei der Ausführung der Zeile Letzte Zeile der code mit der eigentlichen Subtraktion...
- Bei der Verwendung des Codes: data['date_updated'].Unterschied(Daten['date_scored']) bekomme ich folgende Fehlermeldung: AttributeError: '- Serie,' Objekt hat kein Attribut 'Unterschied'
- Ich bin mit dem gleichen Problem. Hast du jemals machen keine Fortschritte auf, herauszufinden dieses heraus?
- Ich aktualisiert meine Frage um dir zu zeigen was ich landete mit @DonQuixote Jedoch, dass diese Lösung möglicherweise nicht für Sie wie ich war, den Umgang mit Daten, die ich Abfragen aus einer mongo db, anstatt eines pandas df.
- Vielen Dank für immer zu mir zurück. Für mich, ich hatte zu deinstallieren, numpy und installieren Sie es dann erneut mit einem .whl-Datei. Es kann helfen, jemand anderes aus, wenn Sie sehen, wie diese in der Zukunft. lfd.uci.edu/~gohlke/pythonlibs
Du musst angemeldet sein, um einen Kommentar abzugeben.
Traf ich den gleichen Fehler mit den oben genannten syntax (arbeitete auf einer anderen Maschine, wenn):
Es funktionierte auf meinem neuen Rechner mit:
Es funktioniert wie ein Charme. Sie können sogar den code vereinfachen, da
to_datetime
ist schlau genug zu erraten, das format für Sie.import io
ist nur hier, um Lesen Sie den Beispiel-Daten durch dieio.StringIO(zz)
hat es nichts zu tun, zum Lesen einer CSV-Datei. Also nehmen Sie es nicht in Rechnung. Was würde ich vorschlagen, ist zu versuchen, das Beispiel unten ist. Wenn es funktioniert, bedeutet es, dass das problem ist, das in Ihren Daten.datetime
. Dies bedeutet jedoch nicht erklären, der Fehler. Ich denke, das problem kommt vielleicht von deiner python-installation, da das Beispiel, das ich zur Verfügung gestellt haben ist die Arbeit mit den pandas. Versuchen Sie, starten Sie von einer frischen installation mit Anaconda distrib zum Beispiel. Sorry, aber ich weiß nicht, wie Sie helfen können.Müssen Sie update pandas.
Ich habe gerade lief in das gleiche Problem mit einem alten code, der verwendet werden, um laufen ohne Probleme.
Nach der Aktualisierung pandas (0.18.1-np111py35_0) auf eine neuere version (0.20.2-np113py35_0) das Problem wurde behoben.