Heim >Backend-Entwicklung >Python-Tutorial >Wie kombiniere ich Datums- und Zeitspalten in Pandas effizient mit pd.to_datetime()?

Wie kombiniere ich Datums- und Zeitspalten in Pandas effizient mit pd.to_datetime()?

DDD
DDDOriginal
2024-11-16 14:01:03403Durchsuche

How to efficiently combine date and time columns in Pandas with 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn