Zum Inhalt springen

Grundlegende Befehle für Pandas DataFrame

  • Python

Im ersten Teil dieser Serie haben wir uns bereits grundlegenden Pandas Objekten und deren Abfrage gewidmet. In diesem Kapitel beschäftigen wir uns darüber hinaus mit dem Umgang mit Pandas DataFrames. Als Ausgangsbeispiel nutzen wir den folgenden DataFrame.

DataFrame

Wie löscht man leere Felder aus einem Pandas DataFrame?

Wenn wir einem DataFrame oder anderem Pandas Objekte leere Werte übergeben, werden diese automatisch durch Numpy NaNs (Not a Number) ersetzt. Für Kalkulationen, wie beispielsweise Mittelwertberechnungen, werden diese Felder nicht mit einbezogen und ignoriert. Den bestehenden DataFrame können wir einfach durch eine leere, dritte Spalte erweitern, die nur für den Index 01.01.2022 einen Wert enthält. Die restlichen Werte werden dann automatisch als NaN gesetzt.

DataFrame

Wenn wir alle Zeilen löschen wollen, die mindestens in einer der Spalten einen leeren Wert haben, können wir das mit dem folgenden Befehl tun.

DataFrame

Wenn wir stattdessen Spalten mit Missing Values löschen wollen, nutzen wir dasselbe Kommando und setzen zusätzlich ‚axis = 1‘. Ansonsten können wir auch die leeren Felder mit vorgegebenen Werten füllen, beispielsweise mit dem Wert 0.

DataFrame

In manchen Fällen kann es auch sinnvoll sein, sich in den booleschen Werte (True/False) ausgeben zu lassen, an welcher Stelle Werte fehlen. In den meisten Fällen sind die DataFrame Objekte jedoch zu groß und dies ist keine übersichtliche Darstellung.

DataFrame

Wie kann ich bestimmte Zeilen aus einem DataFrame löschen?

Wenn wir nicht nur leere Werte aus unserem DataFrame löschen wollen, gibt es zwei Möglichkeiten, wie wir das tun können. Zum einen können wir die Zeilen aus dem DataFrame löschen, indem wir den Index der Zeile nutzen, die gelöscht werden soll. In unserem Fall ist das ein konkretes Datum, wie beispielsweise der 01.01.2022:

DataFrame

Dadurch haben wir die erste Zeile in diesem Objekt gelöscht. In den meisten Fällen werden wir jedoch die konkrete Zeile noch nicht kennen, die wir löschen wollen. Dann können wir auch den DataFrame auf die Zeilen filtern, die wir löschen wollen und uns dann die Indexe der entsprechenden Rows ausgeben lassen.

DataFrame

In diesem Fall löschen wir alle Zeilen für die gilt, dass in „column 1“ ein Wert größer als 0.1 erkannt wird. Dadurch bleiben insgesamt vier Zeilen im Objekt „df“ übrig.

Wie fügt man eine Spalte hinzu?

Auch hier gibt es mehrere Möglichkeiten den bestehenden DataFrame um neue Spalten zu erweitern. Indem wir die neue Spalte einfach mit eckigen Klammern definieren wird sie als neue Spalte an den DataFrame von rechts hinzugefügt.

DataFrame

Wenn wir stattdessen die neue Spalte an einem bestimmten Index einfügen wollen, können wir dafür „df.insert()“ nutzen:

DataFrame

Dieser Funktion übergibt man als ersten Wert den Index der neu einzufügenden Spalte, dann den Namen der Spalte und als drittes das Objekt, das als Spalte eingefügt werden soll. Der letzte Parameter gibt an, ob Duplikate dieser Spalte zugelassen werden. Wenn also die Spalte mit dem Namen und denselben Werten bereits existiert und „allow_duplicates“ auf „False“ gestellt wurde, dann erhält man eine Fehlernachricht.

Wie löscht man eine Spalte?

Wie bei jedem gutem Pandas Befehl, gibt es auch für das Löschen der Spalten verschiedene Möglichkeiten. Die beiden einfachsten sind entweder mithilfe der Funktion „df.drop()“ und dem Namen der Spalte, sowie „axis=1“ für eine Spaltenauswahl. Oder man nutzt die Python Standardfunktion „del“ und definiert die entsprechende Spalte:

DataFrame

Wie führt man Pandas Objekte zusammen?

Pandas bietet verschiedene Möglichkeiten, um Series oder DataFrame Objekte zusammenzuführen. Der concat-Befehl erweitert das erstgenannte Objekt um das zweitgenannte Objekt, wenn sie vom selben Typ sind. Der Befehl kann natürlich auch mit mehr als zwei Datenstrukturen ausgeführt werden.

DataFrame

Mit DataFrames sieht die Codezeile genauso aus. Über den Zusatz ‚ignore_index‘ wird ein neuer durchgängiger Index vergeben und nicht der Index aus dem ursprünglichen Objekt übernommen.

DataFrame

Pandas ermöglicht mit ‚Merge‘ zusätzlich auch Join-Möglichkeiten, wie sie den meisten wahrscheinlich aus SQL geläufig sind.

DataFrame

Wenn wir statt Left- bzw. Right Joins einen Inner Join durchführen wollen, nutzen wir wieder den Concat Befehl mit dem Zusatz ‚join = „inner“‚.

DataFrame

Das solltest Du mitnehmen

  • Pandas bietet viele Möglichkeiten mit Missing Values umzugehen. Man kann die betreffenden Spalten/Zeilen entweder streichen oder die Felder mit einem Wert ersetzen.
  • Mit Pandas haben wir dieselben Join Möglichkeiten wie mit SQL.

Vielen Dank an Deepnote für das Sponsoring dieses Artikels! Deepnote bietet mir die Möglichkeit, Python-Code einfach und schnell auf dieser Website einzubetten und auch die zugehörigen Notebooks in der Cloud zu hosten.

Andere Beiträge zum Thema Pandas

  • Die offizielle Dokumentation von Pandas findest Du hier.
  • Dieser Beitrag baut hauptsächlich auf dem Tutorial von Pandas selbst auf. Dieses findest Du hier.
close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner