Konvertieren Sie die DataFrame-Spalte in Pandas in Datetime
-
Verwenden Sie
pd.to_datetime()
, um die DataFrame-Spalte inDatetime
zu konvertieren -
Verwenden Sie
pd.astype()
, um die DataFrame-Spalte inDatetime
zu konvertieren -
Verwenden Sie
lambda
, um die DataFrame-Spalte inDatetime
zu konvertieren -
Verwenden Sie
apply()
, um mehrere DataFrame-Spalten inDatetime
zu konvertieren
Manchmal müssen wir auf Zeitreihendaten stoßen, wenn wir mit Daten arbeiten, die die Bibliothek pandas
in Python verwenden. Hier müssen wir möglicherweise die Zeichenfolgen- oder Objekttypspalte in das datetime
-Format konvertieren.
Das heutige Tutorial demonstriert die Verwendung der Methoden pd.to_datetime()
, astype()
, lambda
und apply()
, um eine Spalte vom Typ String oder Objekttyp in das Format datetime
zu konvertieren.
Verwenden Sie pd.to_datetime()
, um die DataFrame-Spalte in Datetime
zu konvertieren
Beispielcode:
import pandas as pd
df = pd.DataFrame({"Date": ["12/08/2019", "08/01/2020", "11/6/2021", "12/12/2022"]})
df["converted_to_datetime"] = pd.to_datetime(df["Date"])
print(df.info())
AUSGANG:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Date 4 non-null object
1 converted_to_datetime 4 non-null datetime64[ns]
dtypes: datetime64[ns](1), object(1)
memory usage: 192.0+ bytes
None
Diese Ausgabe zeigt, dass wir zwei Spalten haben, Date
und converted_to_datetime
vom Typ object
bzw. datetime64[ns]
. Wie haben wir den Typ object
in datetime
konvertiert?
Finden wir es unten heraus.
Zuerst haben wir eine Python-Bibliothek namens pandas
importiert und den Alias auf pd
gesetzt, um Tastatureingaben zu vermeiden. Dann haben wir einen Datenrahmen erstellt, der eine Spalte mit dem Namen Datum
enthält, die Datumsangaben im Format TT/MM/JJJJ
enthält.
Hier müssen wir nicht das Format ändern, sondern den Datentyp der Spalte Date
von object
auf datetime
umstellen. Dazu verwenden wir die Methode to_datetime()
und übergeben ihr eine Reihe, um eine Datenrahmenspalte von object
in datetime
zu konvertieren.
Die Methode to_datetime()
kann Array-ähnliche, Serien-, Datenrahmen-, Skalar- oder Diktat-ähnliche Funktionsargumente annehmen und das angegebene Argument in das datetime
-Objekt von Pandas konvertieren. Hier hat info()
einen Datenrahmen kurz zusammengefasst.
Angenommen, wir wollen Datumsangaben in einem bestimmten Format; wie können wir das machen? Lassen Sie uns das gleiche Beispiel üben, um das Datumsformat zu ändern.
Verwenden Sie to_datetime()
mit dem format
-Attribut, um das Datumsformat zu ändern
Beispielcode:
import pandas as pd
df = pd.DataFrame({"Date": ["12/08/2019", "08/01/2020", "11/6/2021", "12/12/2022"]})
df["converted_to_datetime"] = pd.to_datetime(df["Date"], format="%m/%d/%Y")
print(df.info())
AUSGANG:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Date 4 non-null object
1 converted_to_datetime 4 non-null datetime64[ns]
dtypes: datetime64[ns](1), object(1)
memory usage: 192.0+ bytes
None
Dieses Code-Snippet ähnelt dem letzten Beispiel und erzeugt die gleiche Ausgabe, aber jetzt haben wir Daten im Format MM/TT/JJJJ
unter Verwendung des format
-Attributs, das verwendet wird, um das Datumsformat anzugeben. Wir können die Zeit auch als %H:%M:%S
angeben, wenn wir möchten.
Verwenden Sie to_datetime()
mit dem infer_datetime_format
-Attribut
Beispielcode:
import pandas as pd
df = pd.DataFrame({"Date": ["12/08/2019", "08/01/2020", "11/6/2021", "12/12/2022"]})
df["converted_to_datetime"] = pd.to_datetime(df["Date"], infer_datetime_format=True)
print(df.info())
AUSGANG:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Date 4 non-null object
1 converted_to_datetime 4 non-null datetime64[ns]
dtypes: datetime64[ns](1), object(1)
memory usage: 192.0+ bytes
None
Im vorherigen Beispielcode mussten wir das Attribut format
verwenden, während wir die Methode to_datetime()
verwendeten, um das Datumsformat anzugeben, aber das Setzen von infer_datetime_format
auf True
hilft uns, das Datumsformat automatisch zu erkennen und das angegebene zu konvertieren dataframe-Spalte zu datetime
.
Verwenden Sie pd.astype()
, um die DataFrame-Spalte in Datetime
zu konvertieren
Beispielcode:
import pandas as pd
df = pd.DataFrame({"Date": ["12/08/2019", "08/01/2020", "11/6/2021", "12/12/2022"]})
df["converted_to_datetime"] = df["Date"].astype("datetime64[ns]")
print(df.info())
AUSGANG:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Date 4 non-null object
1 converted_to_datetime 4 non-null datetime64[ns]
dtypes: datetime64[ns](1), object(1)
memory usage: 192.0+ bytes
None
Dieser Code-Fence verwendet die Methode series.astype()
, um eine Dataframe-Spalte in datetime
zu konvertieren. Wir können diese Funktion verwenden, um eine String-Spalte im Pandas-Datenrahmen in den Typ datetime
zu konvertieren.
Um den Datentyp zu konvertieren, müssen wir einen Datentyp als Argument angeben; in unserem Fall ist es 'datetime64[ns]'
.
Verwenden Sie lambda
, um die DataFrame-Spalte in Datetime
zu konvertieren
Beispielcode:
import pandas as pd
from datetime import datetime
df = pd.DataFrame({"Date": ["12/08/2019", "08/01/2020", "11/6/2021", "12/12/2022"]})
df["converted_to_datetime"] = df["Date"].apply(
lambda x: datetime.strptime(x, "%m/%d/%Y")
)
print(df.info())
AUSGANG:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Date 4 non-null object
1 converted_to_datetime 4 non-null datetime64[ns]
dtypes: datetime64[ns](1), object(1)
memory usage: 192.0+ bytes
None
In diesem Codeausschnitt haben wir die Methode DataFrame.apply()
mit der Funktion lambda
verwendet, um mit Werten zu arbeiten. Hier haben wir die Methode datetime.strptime()
verwendet, um eine Datenrahmenspalte unter Berücksichtigung des angegebenen Datumsformats in datetime
zu konvertieren.
Warum den Ausdruck lambda
verwenden? Es wird anstelle einer Funktion zur Vereinfachung und leichteren Lesbarkeit verwendet.
Vergessen Sie nicht, datetime
zu importieren, bevor Sie es verwenden.
Nehmen wir dann an, wir haben Spalten inserted
und updated
, die wir in datetime
umwandeln möchten. Lassen Sie uns das unten lernen.
Verwenden Sie apply()
, um mehrere DataFrame-Spalten in Datetime
zu konvertieren
Beispielcode:
import pandas as pd
from datetime import datetime
df = pd.DataFrame(
{
"Insert_Date": ["12/08/2019", "08/01/2020", "11/6/2021", "12/12/2022"],
"Update_Date": ["13/08/2019", "10/01/2020", "15/6/2021", "20/12/2022"],
}
)
df[["Insert_DateTime", "Update_DateTime"]] = df[["Insert_Date", "Update_Date"]].apply(
pd.to_datetime, errors="coerce", infer_datetime_format=True
)
print(df.info())
AUSGANG:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Insert_Date 4 non-null object
1 Update_Date 4 non-null object
2 Insert_DateTime 4 non-null datetime64[ns]
3 Update_DateTime 4 non-null datetime64[ns]
dtypes: datetime64[ns](2), object(2)
memory usage: 256.0+ bytes
None
Hier verwenden wir die Methode apply()
, um Insert_Date
und Update_Date
in separaten Spalten (Insert_DateTime
und Update_DateTime
) in datetime
umzuwandeln. Die Methode apply()
nimmt zwei Parameter entgegen.
Der erste Parameter ist der Funktionsname, den wir anwenden möchten; in diesem Fall ist es pd.to_datetime
. Der zweite Parameter ist infer_datetime_format
, den wir auf True
setzen, um ein konsistentes Datumsformat zu erhalten.
Beachten Sie, dass wir auch astype()
verwenden können, um mehrere Spalten umzuwandeln.
Verwandter Artikel - Pandas DataFrame Column
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- 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