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.

Bernd Fischer
4 Minuten Lesezeit
04 Nov 2024

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)
Bernd
Bernd Fischer
Django & Python Trainer

Ich helfe Entwicklern, wartbare Python- und Django-Projekte zu bauen.

Newsletter

Praxisnahe Inhalte zu Python, Django und KI. Kurz und ohne Spam.

Jetzt anmelden
Kostenloses Django-Ebook

Django für Profis: Architektur und Best Practices

Jetzt downloaden

Buchempfehlungen: Data Science mit Python

Datenanalyse mit Python

Datenanalyse mit Python

Ein praxisorientierter Einstieg in die Datenanalyse mit Jupyter, Pandas und Co. – ideal für alle, die mit echten Datensätzen arbeiten wollen.

Bei Amazon ansehen*

Handbuch Data Science mit Python

Handbuch Data Science mit Python

Ein umfassendes Handbuch für fortgeschrittene Data Scientists – mit Fokus auf moderne Tools und Best Practices.

Bei Amazon ansehen*

* Dies ist ein Affiliate-Link. Wenn du über diesen Link einkaufst, erhalte ich eine kleine Provision – für dich entstehen keine zusätzlichen Kosten.

Online- und Präsenzkurse zum Thema

Finden Sie interessante und zum Thema passende Kurse

Django-Entwicklung mit KI

Künstliche Intelligenz verändert die Softwareentwicklung nachhaltig. In diesem Seminar lernen Sie, wie Sie Django-Anwendungen mit ChatGPT, GitHub Copilot und anderen KI-Assistenten effizient entwickeln. Anhand eines durchgängigen Praxisprojekts erstellen Sie eine vollständige Webanwendung und setzen KI gezielt für Spezifikation, Architektur, Codegenerierung, Tests und Fehlersuche ein. Sie lernen, gute Prompts zu formulieren, KI-generierten Code kritisch zu bewerten und moderne Django-Projekte sicher und wartbar umzusetzen.

5 Tage Vollzeit Online

  • Nächster Termin: 7. September 2026
  • Preis p.P.: 1900,00 EUR (inkl. MwSt. 2261,0 EUR)

Prompting, Fine-Tuning, RAG, Agenten

Nutzen Sie das Potenzial von KI gezielt für Ihr Unternehmen. In dieser 3-tägigen Python-Schulung lernen Sie, wie Sie Large Language Models praxisnah einsetzen, von Prompting über Fine-Tuning bis zu RAG und Agenten-Workflows. Klare Codebeispiele und viele Übungen sorgen dafür, dass Sie das Gelernte direkt anwenden und fundierte Entscheidungen für den KI-Einsatz treffen können.

3 Tage Vollzeit Online

  • Nächster Termin: 14. September 2026
  • Preis p.P.: 1400,00 EUR (inkl. MwSt. 1666,0 EUR)

Schulung Python für Fortgeschrittene

Vertiefen Sie Ihre Python-Kenntnisse gezielt auf professionellem Niveau. In dieser Fortgeschrittenen-Schulung lernen Sie, komplexe Architekturen, effiziente Datenverarbeitung und moderne Python-Techniken sicher umzusetzen. Praxisnahe Beispiele und anspruchsvolle Übungen bereiten Sie darauf vor, Python souverän in anspruchsvollen Projekten einzusetzen.

5 Tage Vollzeit Online

  • Nächster Termin: 7. September 2026
  • Preis p.P.: 1900,00 EUR (inkl. MwSt. 2261,0 EUR)

Unsicher, welcher Kurs für Sie passt?

Gerne unterstütze ich Sie bei der Auswahl oder stelle eine individuell passende Schulung für Ihre Anforderungen zusammen.

Beratung anfordern