Datenbanken Numpy Pandas

Pandas – Arbeiten mit Datum und Zeit in DataFrames

Mit speziellen Datumsfunktionen und -methoden kannst Du in Pandas Zeitreihen analysieren, Berechnungen auf Basis von Zeitpunkten durchführen und verschiedene Datumsformate handhaben.


4 Minuten Lesezeit
04 Nov 2024
Pandas – Arbeiten mit Datum und Zeit in DataFrames

Was lerne ich in diesem Kurs?

In diesem Tutorial lernst Du, wie Du Datums- und Zeitinformationen in Pandas effektiv verwendest.

Voraussetzungen

Stelle sicher, dass Pandas installiert ist:

pip install pandas

Nun kannst Du mit den Funktionen und Methoden für Datum und Zeit in Pandas arbeiten.

Erstellen von DataFrames mit Datum und Zeit

Ein DataFrame kann Datums- und Zeitspalten enthalten, die entweder beim Erstellen des DataFrames definiert oder später hinzugefügt werden.

Beispiel: Erstellen eines DataFrames mit einer Datumsreihe

Verwende die Funktion pd.date_range, um eine Folge von Datumswerten zu erstellen, die als Index oder Spalte im DataFrame verwendet werden können.

import pandas as pd

# Datumsbereich von 2023-01-01 bis 2023-01-10 mit täglicher Frequenz
dates = pd.date_range(start="2023-01-01", end="2023-01-10", freq="D")
df = pd.DataFrame({"Datum": dates, "Werte": range(10)})
print(df)

Hier wird eine Datumsreihe vom 1. bis zum 10. Januar 2023 erstellt und als Spalte Datum im DataFrame gespeichert. Die Spalte Werte enthält einige Beispielzahlen.

Konvertieren von Datums- und Zeitwerten

Oft kommen Datumsangaben in unterschiedlichen Formaten vor und müssen in ein Pandas-kompatibles Datumsformat umgewandelt werden. Die Funktion pd.to_datetime konvertiert eine Spalte oder einen Wert in das datetime-Format.

# Beispiel-Daten
data = {"Datum": ["2023-01-01", "2023-01-02", "2023-01-03"], "Werte": [10, 15, 20]}
df = pd.DataFrame(data)

# Umwandlung der Spalte "Datum" in das datetime-Format
df["Datum"] = pd.to_datetime(df["Datum"])
print(df.dtypes)

Diese Konvertierung stellt sicher, dass Pandas die Werte als Datum interpretiert und ermöglicht somit Zeitreihenoperationen und -berechnungen.

Arbeiten mit Datumsfunktionen

Pandas bietet verschiedene Methoden, um Datumswerte in DataFrames zu manipulieren und auf bestimmte Teile eines Datums zuzugreifen.

Extrahieren von Jahr, Monat und Tag

Mit den Attributen .dt.year, .dt.month und .dt.day kannst Du auf spezifische Teile eines Datums zugreifen.

# Jahr, Monat und Tag extrahieren
df["Jahr"] = df["Datum"].dt.year
df["Monat"] = df["Datum"].dt.month
df["Tag"] = df["Datum"].dt.day
print(df)

Diese Methode fügt dem DataFrame drei neue Spalten hinzu, die das Jahr, den Monat und den Tag aus der Datum-Spalte enthalten.

Berechnungen mit Datumsdifferenzen

Pandas ermöglicht es Dir, Datumsdifferenzen zu berechnen, was z. B. bei der Analyse von Zeitintervallen hilfreich ist.

# Differenz zwischen aufeinanderfolgenden Daten berechnen
df["Differenz_in_Tagen"] = df["Datum"].diff().dt.days
print(df)

Die Methode .diff() berechnet die Differenz zwischen aufeinanderfolgenden Zeilen in der Datum-Spalte. In Kombination mit .dt.days wird die Differenz in Tagen angezeigt.

Zeitreihen mit einem Datumsindex

In Zeitreihenanalysen ist es üblich, einen Datumsindex zu verwenden. Pandas ermöglicht Dir, Datumswerte als Index zu setzen, was den Zugriff auf bestimmte Zeiträume vereinfacht.

# Datum als Index festlegen
df = df.set_index("Datum")
print(df)

Jetzt ist das Datum der Index des DataFrames. Du kannst Datumsabfragen und -filter verwenden, um nur bestimmte Zeiträume anzuzeigen.

Filtern nach Datum

Mit einem Datumsindex kannst Du gezielt nach bestimmten Zeiträumen filtern.

# Filtern nach einem bestimmten Zeitraum
df_filtered = df["2023-01-02":"2023-01-04"]
print(df_filtered)

Dieser Filter zeigt nur die Daten vom 2. bis zum 4. Januar 2023 an. Pandas erkennt automatisch den Datumsbereich und filtert entsprechend.

Resampling von Zeitreihen

Das Resampling ermöglicht es Dir, Daten auf eine bestimmte Frequenz anzupassen, z. B. wöchentliche oder monatliche Daten aus täglichen Daten zu erzeugen. Dies ist hilfreich, um aggregierte Trends über Zeiträume hinweg zu erkennen.

# Resampling auf wöchentliche Summe
df_weekly = df.resample("W").sum()
print(df_weekly)

Die Methode .resample("W").sum() summiert die Daten für jede Woche und gibt die aggregierten Werte zurück.

Häufige Resampling-Frequenzen

  • "D" für täglich
  • "W" für wöchentlich
  • "M" für monatlich
  • "Q" für vierteljährlich
  • "A" für jährlich

Zeitverschiebungen

Mit Pandas kannst Du Zeitreihen verschieben, um Daten zu vergleichen oder verzögerte Effekte zu analysieren.

# Werte um eine Zeile nach unten verschieben
df["Verschobene_Werte"] = df["Werte"].shift(1)
print(df)

Hier wird die Spalte Werte um eine Zeile nach unten verschoben, was bei der Analyse von Verzögerungen in Zeitreihen nützlich ist.

Arbeiten mit Zeitstempeln und Zeitintervallen

Für genauere Zeitstempel kannst Du das datetime-Format mit Stunden, Minuten und Sekunden verwenden. Zeitintervalle werden in Pandas ebenfalls unterstützt und können für detailliertere Analysen verwendet werden.

Beispiel: Zeitstempel mit Stunden und Minuten

# Beispiel-Daten mit Zeitstempel
data = {"Zeit": ["2023-01-01 10:00", "2023-01-01 11:00", "2023-01-01 12:00"], "Werte": [100, 150, 120]}
df = pd.DataFrame(data)

# Konvertierung in datetime-Format
df["Zeit"] = pd.to_datetime(df["Zeit"])
print(df)

Online- und Präsenzkurse zum Thema

Finden Sie interessante und zum Thema passende Kurse

Python Einführungskurs

Beginnen Sie Ihre Programmierkarriere mit unserem Python-Einführungskurs. Erlernen Sie grundlegende Konzepte wie Variablen, Schleifen und Datenstrukturen und bauen Sie eine solide Basis in Python auf. Durch praxisnahe Projekte und kompetente Anleitung entwickeln Sie wertvolle Programmierfähigkeiten.

5 Tage Vollzeit auch als Feierabendkurs Online

Nächster Termin: 20. Januar 2025
Preis pro Person: 1600,00 EUR

Rabattaktion: 3 für den Preis von 2!

Data Science mit Python

In diesem dreitägigen Data Science Seminar mit Python lernen Teilnehmer, wie sie Daten effizient mit Python-Datenstrukturen verarbeiten, analysieren und visualisieren. Die Schulung umfasst die Arbeit mit NumPy und Pandas sowie die Erstellung von aussagekräftigen Diagrammen mit Matplotlib.

3 Tage Vollzeit Online

Nächster Termin: noch kein Datum bekannt
Preis pro Person: 1200,00 EUR

Rabattaktion: 3 für den Preis von 2!

Grundlagen SQL mit Python

Dieses dreitägige SQL-Seminar vermittelt Anfängern die Grundlagen relationaler Datenbanken anhand von SQLite. Die ersten beiden Tage konzentrieren sich auf Datenbankdesign, Normalisierung, grundlegende SQL-Abfragen sowie Datenmanipulation mit INSERT, UPDATE und ER-Diagrammen. Am dritten Tag werden SQLAlchemy, Migrationen und ORM-Konzepte behandelt, einschließlich Benutzerrechte und grundlegender Optimierungstechniken.

3 Tage Vollzeit auch als Feierabendkurs Online

Nächster Termin: 10. Februar 2025
Preis pro Person: 1600,00 EUR

Rabattaktion: 3 für den Preis von 2!