So konvertieren sie spalten in pandas in datetime
Oft sind Sie möglicherweise daran interessiert, eine oder mehrere Spalten eines Pandas-DataFrames in das DateTime-Format zu konvertieren. Glücklicherweise ist dies mit der Funktion to_datetime() einfach zu bewerkstelligen.
Dieses Tutorial zeigt mehrere Beispiele für die Verwendung dieser Funktion im folgenden DataFrame:
import numpy as np import pandas as pd #createDataFrame df = pd.DataFrame({'event': ['A', 'B', 'C'], 'start_date': ['20150601', '20160201', '20170401'], 'end_date': ['20150608', '20160209', '20170416'] }) #view DataFrame df event start_date end_date 0 A 20150601 20150608 1 B 20160201 20160209 2 C 20170401 201704161 #view column data types df. dtypes event object start_date object end_date object dtype:object
Beispiel 1: Konvertieren Sie eine einzelne Spalte in DateTime
Der folgende Code zeigt, wie die Spalte „start_date“ von einer Zeichenfolge in das DateTime-Format konvertiert wird:
#convert start_date to DateTime format df['start_date'] = pd. to_datetime (df['start_date']) #view DataFrame df event start_date end_date 0 A 2015-06-01 20150608 1 B 2016-02-01 20160209 2 C 2017-04-01 20170416 #view column date types df. dtypes event object start_date datetime64[ns] end_date object dtype:object
Beachten Sie, dass die Funktion to_datetime() intelligent ist und normalerweise das richtige zu verwendende Datumsformat ableiten kann. Sie können jedoch auch mit dem Formatargument angeben, welches Format verwendet werden soll:
#convert start_date to DateTime format df['start_date'] = pd. to_datetime (df['start_date'], format=' %Y%m%d ') #view DataFrame df event start_date end_date 0 A 2015-06-01 20150608 1 B 2016-02-01 20160209 2 C 2017-04-01 20170416 #view column date types df. dtypes event object start_date datetime64[ns] end_date object dtype:object
Beispiel 2: Konvertieren Sie mehrere Spalten in DateTime
Der folgende Code zeigt, wie die Spalten „start_date“ und „end_date“ von Zeichenfolgen in DateTime-Formate konvertiert werden:
#convert start_date and end_date to DateTime formats df[['start_date', 'end_date']] = df[['start_date', 'end_date']]. apply (pd. to_datetime ) #view DataFrame df event start_date end_date 0 A 2015-06-01 2015-06-08 1 B 2016-02-01 2016-02-09 2 C 2017-04-01 2017-04-16 #view column date types df. dtypes event object start_date datetime64[ns] end_date datetime64[ns] dtype:object
Beispiel 3: Konvertieren Sie Spalten in das DateTime-Format mit Sekunden
In einigen Fällen verfügen Sie möglicherweise auch über Spalten, die ein Datum sowie Stunden, Minuten und Sekunden enthalten, z. B. den folgenden DataFrame:
#createDataFrame df = pd.DataFrame({'event': ['A', 'B', 'C'], 'start_date': ['20150601043000', '20160201054500', '20170401021215'], 'end_date': ['20150608', '20160209', '20170416'] }) #view DataFrame df event start_date end_date 0 A 20150601043000 20150608 1 B 20160201054500 20160209 2 C 20170401021215 20170416
Auch hier ist die Funktion to_datetime() intelligent und kann normalerweise das richtige zu verwendende Format ableiten, ohne dass wir es angeben müssen:
#convert start_date to DateTime format df['start_date'] = pd. to_datetime (df['start_date']) #view DataFrame df event start_date end_date 0 A 2015-06-01 04:30:00 20150608 1 B 2016-02-01 05:45:00 20160209 2 C 2017-04-01 02:12:15 20170416 #view column date types df. dtypes event object start_date datetime64[ns] end_date object dtype:object
Natürlich werden Sie in freier Wildbahn wahrscheinlich auf eine Vielzahl seltsamer DateTime-Formate stoßen, daher müssen Sie möglicherweise das Argument format verwenden, um Python genau mitzuteilen, welches DateTime-Format verwendet werden soll.
In diesen Fällen finden Sie auf dieser Seite eine vollständige Liste der %DateTime-Operatoren, die Sie zum Angeben von Formaten verwenden können.
Zusätzliche Ressourcen
So konvertieren Sie DateTime in Pandas in ein Datum
So konvertieren Sie Strings in Pandas in Float