Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
-
Pandas
to_datetime
Funktion zur Konvertierung der DataFrame-Spalte in datetime -
DataFrame
apply
Methode zur Konvertierung der DataFrame-Spalte in Datetime - Methoden zur Konvertierung von DataFrame-Spalte in Datetime-Performance-Vergleich
Wir werden Methoden vorstellen, um Pandas DataFrame Spalte in Python datetime zu konvertieren.
- Pandas
to_datetime()
Funktion - DataFrame
apply
Methode zur Bearbeitung von Elementen in der Spalte
Wir werden in diesem Artikel unten den gleichen DataFrame verwenden.
>>> from datetime import datetime, timedelta
>>> from pandas import DataFrame
>>> df = DataFrame.from_items(
[('Alfa', [1, 2, 3]),
('Bravo', [4, 5, 6]),
('Datetime', [datetime.strftime(datetime.now()-timedelta(days=_), "%m/%d/%Y, %H:%M:%S") for _ in range(3)])],
orient='index',
columns=['A', 'B', 'C']).T
>>> df
Alfa Bravo Datetime
A 1 4 12/07/2019, 14:08:55
B 2 5 12/06/2019, 14:08:55
C 3 6 12/05/2019, 14:08:55
Pandas to_datetime
Funktion zur Konvertierung der DataFrame-Spalte in datetime
Pandas to_datetime
Funktion konvertiert das angegebene Argument in datetime
.
pandas.to_datetime(param, format="")
Das Format gibt das Muster der datetime-Zeichenkette an. Das gleiche gilt für das Format in stftime
oder strptime
im Python datetime
Modul.
>>> df
Alfa Bravo Datetime
A 1 4 12/07/2019, 14:08:55
B 2 5 12/06/2019, 14:08:55
C 3 6 12/05/2019, 14:08:55
>>> df['Datetime'] = pd.to_datetime(df['Datetime'], format="%m/%d/%Y, %H:%M:%S")
>>> df
Alfa Bravo Datetime
A 1 4 2019-12-07 14:08:55
B 2 5 2019-12-06 14:08:55
C 3 6 2019-12-05 14:08:55
Die to_datetime()
Funktion modifiziert die DataFrame
Daten nicht an Ort und Stelle, daher müssen wir die zurückgegebenen Pandas Series
der spezifischen DataFrame
Spalte zuweisen.
Die to_datetime()
Funktion ist schlau, in Datetime zu konvertieren
Die to_datetime()
Funktion könnte die Konvertierung zu datetime
auf eine intelligente Art und Weise durchführen, ohne den datetime
Formatstring zu übergeben. Sie wird das String-Muster automatisch und intelligent finden.
>>> df['Datetime'] = pd.to_datetime(df['Datetime'])
>>> df
Alfa Bravo Datetime
A 1 4 2019-12-07 14:08:55
B 2 5 2019-12-06 14:08:55
C 3 6 2019-12-05 14:08:55
Obwohl to_datetime
seine Arbeit erledigen könnte, ohne das format
intelligent anzugeben, ist die Konvertierungsgeschwindigkeit viel geringer als die, wenn das format
angegeben wird.
Wir koennten die Option infer_datetime_format
von to_datetime
auf True
setzen, um die Konvertierung in einen schnelleren Modus zu schalten, wenn das Format des datetime-Strings ohne Angabe des format
-Strings hergeleitet werden koennte.
Es könnte die Parsing-Geschwindigkeit um 5~6 mal erhöhen.
DataFrame apply
Methode zur Konvertierung der DataFrame-Spalte in Datetime
apply(func, *args, **kwds)
Die Methode apply
von DataFrame
wendet die Funktion func
auf jede Spalte oder Zeile an.
Wir könnten der Einfachheit halber die Funktion lambda
an Stelle von func
verwenden.
>>> df['Datetime'] = df['Datetime'].apply(lambda _: datetime.strptime(_,"%m/%d/%Y, %H:%M:%S"))
>>> df
Alfa Bravo Datetime
A 1 4 2019-12-07 14:44:35
B 2 5 2019-12-06 14:44:35
C 3 6 2019-12-05 14:44:35
Methoden zur Konvertierung von DataFrame-Spalte in Datetime-Performance-Vergleich
Lassen Sie uns timeit
verwenden, um die Timing-Leistung der beiden in diesem Artikel vorgestellten Methoden zu vergleichen.
In [1]: %timeit pd.to_datetime(df['Datetime'], format="%m/%d/%Y, %H:%M:%S")
452 µs ± 85.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
In [2]: %timeit df['Datetime'].apply(lambda _: datetime.strptime(_,"%m/%d/%Y, %H:%M:%S"))
377 µs ± 58.5 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
Die apply
Methode ist sogar etwas besser als Pandas native to_datetime
Methode, mit etwa 80% der Ausführungszeit der to_datetime
Funktion.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookVerwandter Artikel - Pandas DataFrame
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum
Verwandter Artikel - Pandas DataFrame Column
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- So erhalten Sie die Summe der Pandas-Spalte
- Wie man die Reihenfolge der Pandas DataFrame-Spalten ändert
- Wie man eine DataFrame-Spalte in eine Zeichenkette in Pandas konvertiert