datetime64 vergleichen - Format unterschiedlich

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Hi,

irgendwie bekomme ich es nicht hin zwei datetime64 zu vergleichen, weil Tage und Monate an unterschiedlichen stellen stehen und ich ich das nicht formatiert bekomme:

bzw ich habe einen Zeitstempel:

Code: Alles auswählen

 >> zeitstempel 
 {datetime64} 2020-27-10 23:44:43
und eine pandas column mit Einträgen wie folgt:

Code: Alles auswählen

>> df['Zeit'].iloc[0]
{datetime64} 2020-10-28 20:00:01
Wie kann ich die beiden datimes ins gleiche Format bringen und dann vergleichen?

LG
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
narpfel
User
Beiträge: 691
Registriert: Freitag 20. Oktober 2017, 16:10

Moin,

ich kann mir nicht vorstellen, dass du ein Datetime-Objekt mit dem Wert „10.27.2020“ erstellen kannst. Zeig den Code, der das Objekt erstellt, und guck dir am besten auch mal die Schlüsselwortparameter zu `pd.read_csv` an. Da gibt es welche, um Datumsangaben zu parsen.

`2020-27-10` ist übrigens immer falsch. Es gibt keinen Standard, in dem YYYY-dd-mm geschrieben wird. Falls du das so selbst erzeugst, solltest du das ändern; falls du das von einem externen Tool bekommst, wäre das in meinen Augen einen Bugreport wert.
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Das habe ich mir auch gedacht.

Bekomme es dadurch, dass ich auf einen pandas DF to_datetime anwende:

Code: Alles auswählen

import pandas as pd

Code: Alles auswählen

df['Datum']
0        07.11.2020 23:30:28
1        07.11.2020 23:29:50
2        07.11.2020 23:29:02
3        07.11.2020 23:28:28
4        07.11.2020 23:27:42
                ...         
24704    06.11.2020 23:32:04
24705    06.11.2020 23:32:04
24706    06.11.2020 23:31:57
24707    06.11.2020 23:31:45
24708    06.11.2020 23:30:45
Name: Datum, Length: 24709, dtype: object

Code: Alles auswählen

pd.to_datetime(df['Datum'])
0       2020-07-11 23:30:28
1       2020-07-11 23:29:50
2       2020-07-11 23:29:02
3       2020-07-11 23:28:28
4       2020-07-11 23:27:42
                ...        
24704   2020-06-11 23:32:04
24705   2020-06-11 23:32:04
24706   2020-06-11 23:31:57
24707   2020-06-11 23:31:45
24708   2020-06-11 23:30:45
Name: Datum, Length: 24709, dtype: datetime64[ns]
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Hab es. Danke für den Denkanstoß.

Code: Alles auswählen

pd.to_datetime(df['Datum'], format='%d.%m.%Y %H:%M:%S')
0       2020-11-07 23:30:28
1       2020-11-07 23:29:50
2       2020-11-07 23:29:02
3       2020-11-07 23:28:28
4       2020-11-07 23:27:42
                ...        
24704   2020-11-06 23:32:04
24705   2020-11-06 23:32:04
24706   2020-11-06 23:31:57
24707   2020-11-06 23:31:45
24708   2020-11-06 23:30:45
Name: Datum, Length: 24709, dtype: datetime64[ns]
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Antworten