Konvertieren Sie die DataFrame-Spalte in Pandas in Datetime

Mehvish Ashiq 21 Juni 2023
  1. Verwenden Sie pd.to_datetime(), um die DataFrame-Spalte in Datetime zu konvertieren
  2. Verwenden Sie pd.astype(), um die DataFrame-Spalte in Datetime zu konvertieren
  3. Verwenden Sie lambda, um die DataFrame-Spalte in Datetime zu konvertieren
  4. Verwenden Sie apply(), um mehrere DataFrame-Spalten in Datetime zu konvertieren
Konvertieren Sie die DataFrame-Spalte in Pandas in Datetime

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.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - Pandas DataFrame Column