Heim >Backend-Entwicklung >Python-Tutorial >Wie kombiniere ich Datums- und Zeitspalten in Pandas effizient mit pd.to_datetime()?
Kombinieren von Datums- und Zeitspalten in Pandas mit pd.to_datetime()
Bei der Arbeit mit Datums- und Zeitdaten in Pandas ist dies oft notwendig um separate Spalten in einem einzigen Datetime-Objekt zu kombinieren. Eine Möglichkeit, dies zu tun, ist die Verwendung der Funktion pd.to_datetime().
Problemstellung
Betrachten Sie einen Datenrahmen mit den Spalten „Datum“ und „Uhrzeit“. unten gezeigt:
Date Time 01-06-2013 23:00:00 02-06-2013 01:00:00 02-06-2013 21:00:00 02-06-2013 22:00:00 02-06-2013 23:00:00 03-06-2013 01:00:00 03-06-2013 21:00:00 03-06-2013 22:00:00 03-06-2013 23:00:00 04-06-2013 01:00:00
Unser Ziel ist es, diese beiden Spalten in einer einzigen Spalte „Datum und Uhrzeit“ zu kombinieren.
Lösung mit String-Verkettung
Ein Ansatz besteht darin, die Spalten „Datum“ und „Uhrzeit“ als Zeichenfolgen zu verketten und die resultierende Zeichenfolge dann mit pd.to_datetime() in ein Datetime-Objekt umzuwandeln:
result = pd.to_datetime(df['Date'] + ' ' + df['Time'])
Dies konvertiert die verkettete Zeichenfolge in eine Reihe von Datetime-Objekten.
Lösung mit Formatparameter
Alternativ können Sie den Formatparameter von pd.to_datetime() verwenden, um das genaue Format der kombinierten Objekte anzugeben string:
result = pd.to_datetime(df['Date'] + df['Time'], format='%m-%d-%Y %H:%M:%S')
Dieser Ansatz ist schneller als der vorherige, insbesondere beim Umgang mit großen Datenmengen.
Leistungsvergleich
Verwendung der % Mit dem Befehl %timeit magic können wir die Leistung beider Ansätze vergleichen:
df = pd.concat([df for _ in range(1000000)]).reset_index(drop=True) %timeit pd.to_datetime(df['Date'] + ' ' + df['Time']) %timeit pd.to_datetime(df['Date'] + df['Time'], format='%m-%d-%Y %H:%M:%S')
Der zweite Ansatz mit dem Formatparameter ist bei großen Datensätzen deutlich schneller.
Das obige ist der detaillierte Inhalt vonWie kombiniere ich Datums- und Zeitspalten in Pandas effizient mit pd.to_datetime()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!