Ich benutze derzeit Python versucht, eine Datetime-Spalte in 2, eine für Date und eine für die Zeit zu teilen und haben auch die Spalte richtig formatiert.Formatieren von Datetime-Variablen geben fehlende Zeitwerte als 00:00:00. Unter Verwendung von Python
ORIGINAL DATASET
INCIDENT_DATE
12/31/2006 11:20:00 PM
12/31/2006 11:30:00 PM
01/01/2007 00:25
01/01/2007 00:10
12/31/2006 11:30:00 AM
01/01/2007 00:05
01/01/2007 00:01
12/31/2006 4:45:00 PM
12/31/2006 11:50:00 PM
**01/01/2007**
* I 2 Codes verwendet haben, eine die Säule und den anderen zu formatieren, die sie spaltet. Doch nach dem Formatieren der Säule wurden geben fehlende Zeitwert 00.00.00 Wert, hier eine Zeit für 12 midnight.See angibt, unter
nach der Formatierung
2006-12-31 23:20:00
2006-12-31 23:30:00
2007-01-01 00:25:00
2007-01-01 00:10:00
2006-12-31 11:30:00
2007-01-01 00:05:00
2007-01-01 00:01:00
2006-12-31 16:45:00
2006-12-31 23:50:00
**2007-01-01 00:00:00**
Codes verwendet:
## Format datetime column
crimeall['INCIDENT_DATE'] = pd.DatetimeIndex(crimeall['INCIDENT_DATE'])
##Split DateTime column
crimeall['TIME'],crimeall['DATE']= crimeall['INCIDENT_DATE'].apply(lambda x:x.time()), crimeall['INCIDENT_DATE'].apply(lambda x:x.date())
Gibt es einen Weg, dies zu tun, ohne dass der fehlende Zeitwert auf 00:00:00 gesetzt ist? Ist es möglich, diese fehlenden Werte während der Formatierung von datetime als Nan aufzuzeichnen?
Irgendwelche Gedanken darüber, wie ich eine formatierte Datetime erreichen kann, die die fehlenden Zeitwerte als NaN zeigt.
WAS ICH MAG IT LIKE Hoffnung
2006-12-31 23:20:00
2006-12-31 23:30:00
2007-01-01 00:25:00
2007-01-01 00:10:00
2006-12-31 11:30:00
2007-01-01 00:05:00
2007-01-01 00:01:00
2006-12-31 16:45:00
2006-12-31 23:50:00
**2007-01-01 NaN**
aussieht, dass es eine Möglichkeit, dies zu tun bekommen ist.
Leider können Sie Ihre Frage bearbeiten, wie ich verstehe nicht, was das '**' sind.Kannst du auch deine echten rohen Eingabedaten posten, wenn du eine aktuelle Version von Pandas verwendest, dann solltest du in der Lage sein, wenn 'INCIDENT_DATE' bereits ein Datetime dtype ist, um 'crimeall [' TIME '], crimeall [' DATE '] zu tun = crimeall ['INCIDENT_DATE'] .dt.time, crimeall ['INCIDENT_DATE']. dt.date' – EdChum
Wenn ich Ihre Frage richtig verstehe, ist Ihr Problem hier, dass Ihre Datumszeichenfolgen ein inkonsistentes Format haben, wenn Sie also einen Datetimeindex erstellen oder verwenden Sie 'pd.to_datetime' und dann einen fehlenden Zeitabschnitt (oder einen entsprechenden Datumsabschnitt), wird ein Standardwert geliefert. Sie können die' 00: 00: 00' durch 'NaT' ersetzen. – EdChum
Aber es ist problematisch anzunehmen' 00: 00: 00' ist 'NaT', weil es sehr gut sein könnte. Herauszufinden, welche Werte gültig sind, muss ** vor ** Umwandlung in Datetime erfolgen. – JohnE