Skip to content

Effizientes Entfernen von Spalten aus PySpark-Datenframes

Updated on

Das Entfernen von Spalten aus Datenframes ist eine häufige Aufgabe in PySpark, einem leistungsstarken Tool zur Datenmanipulation und -analyse. Ob Sie mit einer einzelnen Spalte oder mehreren arbeiten, PySpark bietet effiziente Techniken, um sie aus Ihrem Datenframe zu entfernen. Dieser Artikel führt Sie durch diese Techniken und bietet detaillierte Erklärungen und Beispiele, um Ihnen beim Beherrschen des Spaltenentfernens in PySpark zu helfen.

Der Datenframe von PySpark bietet eine Methode drop(), die verwendet werden kann, um eine einzelne Spalte oder mehrere Spalten aus einem Datenframe zu entfernen. Diese Methode ist vielseitig einsetzbar und kann je nach Bedarf auf verschiedene Weise verwendet werden. Ob Sie eine Spalte nach ihrem Namen, Index oder einer Bedingung entfernen möchten, PySpark hat das Richtige für Sie.

Möchten Sie schnell Datenvisualisierungen aus Python-Pandas-Datenframes ohne Code erstellen?

PyGWalker ist eine Python-Bibliothek für die explorative Datenanalyse mit Visualisierung. PyGWalker (opens in a new tab) kann Ihren Arbeitsablauf zur Datenanalyse und -visualisierung in Jupyter Notebook vereinfachen, indem es Ihren Pandas-Datenframe (und Polars-Datenframe) in eine benutzerfreundliche Tableau-ähnliche Benutzeroberfläche für die visuelle Exploration umwandelt.

PyGWalker für Datenvisualisierung (opens in a new tab)

Wie man eine einzelne Spalte in einem PySpark-Datenframe entfernt

Das Entfernen einer einzelnen Spalte aus einem PySpark-Datenframe ist unkompliziert. Die Methode drop() von PySpark nimmt self und *cols als Argumente. So können Sie es verwenden:

df = df.drop('Spaltenname')

In diesem Beispiel ist 'Spaltenname' der Name der Spalte, die Sie entfernen möchten. Diese Codezeile gibt einen neuen Datenframe zurück, aus dem die angegebene Spalte entfernt wurde.

Es gibt auch andere Möglichkeiten, eine einzelne Spalte zu entfernen. Sie können beispielsweise die Methode drop() von pyspark.sql.functions verwenden:

from pyspark.sql.functions import col
df = df.drop(col('Spaltenname'))

Diese Beispiele zeigen, wie die Spalte 'Spaltenname' aus dem Datenframe entfernt wird. Je nach Bedarf können Sie entweder die erste Methode oder die zweite Methode verwenden.

Wie man mehrere Spalten in einem PySpark-Datenframe entfernt

Wenn Sie mehrere Spalten aus einem Datenframe entfernen müssen, können Sie dies auch in PySpark tun. Sie können ein Array von Spaltennamen an die Methode drop() übergeben:

df = df.drop('Spaltenname1', 'Spaltenname2', 'Spaltenname3')

In diesem Beispiel sind 'Spaltenname1', 'Spaltenname2' und 'Spaltenname3' die Namen der Spalten, die Sie entfernen möchten. Diese Codezeile gibt einen neuen Datenframe zurück, aus dem die angegebenen Spalten entfernt wurden.

Können Sie eine Spalte nach ihrem Index in einem PySpark-Datenframe entfernen?

Obwohl PySpark keine integrierte Funktion zum Entfernen einer Spalte nach ihrem Index bietet, können Sie dies erreichen, indem Sie die List Comprehension von Python mit der Methode drop() von PySpark kombinieren. So können Sie es tun:

df = df.drop(*[df.columns[i] for i in [Spaltenindex1, Spaltenindex2]])

In diesem Beispiel sind 'Spaltenindex1' und 'Spaltenindex2' die Indizes der Spalten, die Sie entfernen möchten. Diese Codezeile gibt einen neuen Datenframe zurück, aus dem die angegebenen Spalten entfernt wurden.

Denken Sie daran, dass die Indizierung in Python bei 0 beginnt, sodass die erste Spalte des Datenframes den Index 0 hat.

Wie man eine Spalte nur dann entfernt, wenn sie in einem PySpark-Datenframe vorhanden ist

In einigen Fällen möchten Sie eine Spalte nur dann entfernen, wenn sie im Datenframe vorhanden ist. PySpark bietet keine integrierte Funktion dafür, aber Sie können dies erreichen, indem Sie prüfen, ob die Spalte in der Spaltenliste des Datenframes vorhanden ist, bevor Sie die Methode drop() aufrufen:

if 'Spaltenname' in df.columns:
    df = df.drop('Spaltenname')

In diesem Beispiel ist 'Spaltenname' der Name der Spalte, die Sie entfernen möchten. Diese Codezeile überprüft, ob 'Spaltenname' in den Spalten des Datenframes vorhanden ist. Wenn dies der Fall ist, wird die Spalte entfernt und ein neuer Datenframe zurückgegeben.

Wie man Zeilen mit Nullwerten in einem PySpark-Datenframe entfernt

PySpark ermöglicht es Ihnen auch, Zeilen mit Nullwerten in einem Datenframe zu entfernen. Sie können dies mit der Methode dropna() erreichen:

df = df.dropna()

Dieser Code gibt einen neuen Datenframe zurück, aus dem alle Zeilen entfernt wurden, die mindestens einen Nullwert enthalten.

FAQs

Hier sind einige häufig gestellte Fragen zum Entfernen von Spalten in PySpark-Datenframes:

  1. Wie können Sie Dubletten in einem PySpark-Datenframe entfernen? Sie können Dubletten in einem PySpark-Datenframe entfernen, indem Sie die Methode dropDuplicates() verwenden. Diese Methode gibt einen neuen Datenframe zurück, aus dem doppelte Zeilen entfernt wurden.

  2. Können Sie eine Liste von Spalten in einem PySpark-Datenframe entfernen? Ja, Sie können eine Liste von Spalten in einem PySpark-Datenframe entfernen. Sie können eine Liste von Spaltennamen an die Methode drop() übergeben, um mehrere Spalten auf einmal zu entfernen.

  3. Wie lautet die Syntax zum Verbinden von zwei Datenframes in PySpark? Sie können zwei Datenframes in PySpark mit der Methode join() verbinden. Die Syntax lautet df1.join(df2, on='gemeinsame_spalte', how='join_typ'), wobei 'gemeinsame_spalte' die Spalte ist, anhand derer Sie die Datenframes verbinden möchten, und 'join_typ' der Typ des Joins ist, den Sie durchführen möchten (z. B. 'inner', 'outer', 'left', 'right').