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
Freigeben: 2024-11-16 14:01:03
Original
420 Leute haben es durchsucht

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:

1

2

3

4

5

6

7

8

9

10

11

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

Nach dem Login kopieren

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:

1

result = pd.to_datetime(df['Date'] + ' ' + df['Time'])

Nach dem Login kopieren

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:

1

result = pd.to_datetime(df['Date'] + df['Time'], format='%m-%d-%Y %H:%M:%S')

Nach dem Login kopieren

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:

1

2

3

4

5

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')

Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage