Weiter zum Inhalt

PySpark: So entfernst du eine Spalte aus einem DataFrame

In PySpark kannst du eine oder mehrere Spalten aus einem DataFrame entfernen: mit .drop("column_name") für eine einzelne Spalte oder .drop(["column1", "column2", ...]) für mehrere Spalten.
Aktualisiert 18. Sept. 2026  · 6 Min. lesen

Entdecke KI

ChatGPTClaudePerplexity
Datenbereinigung und -aufbereitung sind entscheidende Schritte in jedem Data-Science- oder Data-Engineering-Projekt. Um die Qualität und Zuverlässigkeit unserer Daten sicherzustellen, müssen wir Unstimmigkeiten, Fehler und fehlende Werte erkennen und beheben.

PySpark ist besonders hilfreich bei großen Datensätzen, da es effiziente Methoden zur Bereinigung bereitstellt. In diesem Artikel konzentrieren wir uns auf eine häufige Aufgabe: wie man Spalten entfernt — mithilfe der PySpark-Methoden .drop() und .select().

Wenn du mehr über PySpark erfahren möchtest, wirf einen Blick in diesen Kurs: Introduction to PySpark.

 

Warum Spalten in PySpark-DataFrames entfernen?

Das Entfernen von Spalten ist in der Datenvorverarbeitung aus mehreren Gründen üblich. Das Streichen unnötiger oder irrelevanter Spalten kann die zu verarbeitende Datenmenge deutlich reduzieren. So wird der Datensatz schlanker, leichter zu analysieren und die Performance deiner PySpark-Jobs kann steigen.

Außerdem umfasst die Feature-Auswahl für Machine-Learning-Modelle oft das Entfernen von Spalten, die nicht zur Modellgenauigkeit beitragen oder Rauschen einbringen. Dieser Schritt führt häufig zu effizienteren und treffsichereren Modellen.

Schließlich kann das Entfernen von Spalten auch eine Strategie zur Verbesserung der Datenqualität sein. Enthält eine Spalte einen hohen Anteil fehlender Werte oder fehlerhafter Daten, ist es oft am sinnvollsten, sie zu entfernen.

So entfernst du eine einzelne Spalte aus einem PySpark-DataFrame

Angenommen, wir haben ein DataFrame df mit fünf Spalten: player_name, player_position, team, minutes_played und score. Die Spalte minutes_played enthält viele fehlende Werte, daher möchten wir sie entfernen.

In PySpark können wir eine einzelne Spalte mit der Methode .drop() aus einem DataFrame entfernen.

Die Syntax lautet df.drop("column_name"), wobei:

  • df das DataFrame ist, aus dem die Spalte entfernt werden soll
  • column_name der Name der zu entfernenden Spalte ist.

Die Methode df.drop() gibt ein neues DataFrame zurück, in dem die angegebenen Spalten fehlen.

So entfernst du eine Spalte:

df_dropped = df.drop("minutes_played")

So entfernst du mehrere Spalten aus einem PySpark-DataFrame

Stell dir vor, wir wollen unser DataFrame df analysieren, aber weder Team noch Spielerposition berücksichtigen — also sollen beide Spalten weg. Dafür gibt es mehrere Ansätze, die wir uns ansehen.

Um mehrere Spalten zu entfernen, können wir der Methode .drop() eine Liste von Spaltennamen übergeben. Das geht auf zwei Arten:

# Option 1: Namen als Liste übergeben
df_dropped = df.drop(["team", "player_position"])

# Option 2: Namen als separate Argumente übergeben
df_dropped = df.drop("team", "player_position")

Alternativ können wir mehrere .drop()-Aufrufe verketten. Das funktioniert zwar, gilt aber nicht als besonders effizient oder elegant. Jeder Aufruf erzeugt ein neues DataFrame, was gerade bei großen Datensätzen zusätzlichen Overhead verursacht.

df_dropped = df.drop("team").drop("player_position")

Spalten bedingt entfernen

Statt explizit anzugeben, welche Spalten entfernt werden sollen, können wir den Ansatz umkehren und nur die Spalten auswählen, die eine Bedingung erfüllen. So enthält das zurückgegebene DataFrame die unerwünschten Spalten nicht mehr.

Mit .select()

Wir können die Methode .select() in PySpark zusammen mit einer List Comprehension verwenden, um eine oder mehrere Spalten anhand bestimmter Kriterien auszuwählen und damit andere effektiv zu entfernen. Der Ansatz ist flexibel — von einfachen bis hin zu komplexen Bedingungen.

Die Methode folgt der Syntax df.select([col for col in df.columns if condition]), wobei:

  • df das DataFrame ist, mit dem du arbeitest.
  • condition das Kriterium ist, nach dem die zu behaltenden Spalten gefiltert werden.

Arbeiten wir wieder mit unserem DataFrame df und wählen alle Spalten außer der Spalte team aus:

df_sel = df.select([col for col in df.columns if col != "team"])

Komplexe Bedingungen mit .selectExpr()

Wenn du dich mit SQL wohlfühlst und komplexere Bedingungen bei der Spaltenauswahl brauchst, bietet PySparks .selectExpr() eine starke Lösung. Damit kannst du SQL-ähnliche Ausdrücke direkt in deinem PySpark-Code nutzen, um Spalten auszuwählen und zu manipulieren.

Zum Beispiel:

# Bestimmte Spalten auswählen und eine neue Spalte 'FullMatch' erstellen
df_sel = df.selectExpr("player_name", "player_position", "minutes_played >= 60 as FullMatch")

Hier schließen wir nicht nur eine Spalte aus. Wir:

  1. Wählen die Spalten player_name und player_position aus.
  2. Erstellen eine neue Spalte FullMatch, die angibt, ob ein Spieler ein vollständiges Spiel absolviert hat (60 Minuten oder mehr).

Diese Flexibilität macht .selectExpr() besonders wertvoll, wenn einfache List Comprehensions nicht ausreichen.

Best Practices

Wenn wir Spalten aus einem DataFrame entfernen, sollten wir einige Best Practices befolgen, um Datenintegrität, Lesbarkeit und Effizienz sicherzustellen.

1. Erstelle ein Backup: Bevor du dein DataFrame änderst, insbesondere beim Entfernen von Spalten, ist es sinnvoll, eine Sicherungskopie anzulegen. So kannst du bei Bedarf auf die Originaldaten zurückgreifen.

df_backup = df.persist()  # DataFrame cachen, um spätere Neuberechnungen zu vermeiden

2. Drop mit inplace=False (Standard): Standardmäßig gibt .drop() ein neues DataFrame zurück, ohne das Original zu verändern. Das ist in der Regel sicherer. Wenn du ganz sicher bist, dass du das Original ändern willst, kannst du inplace=True verwenden — aber mit Vorsicht.

df_dropped = df.drop("column_to_drop", inplace=False) # Standardverhalten

3. Entscheidungen dokumentieren: Wenn du im Team arbeitest oder deinen Code später erneut brauchst, helfen Kommentare, die begründen, warum bestimmte Spalten entfernt wurden. Das bietet dir und anderen wertvollen Kontext.

4. Umbenennen in Erwägung ziehen: Statt Spalten zu entfernen, prüfe, ob ein Umbenennen sinnvoller ist — vor allem, wenn die Information später nützlich sein könnte. PySpark stellt dafür die Methode .withColumnRenamed() bereit.

Fazit

In diesem Tutorial hast du gelernt, wie du einzelne und mehrere Spalten mit den Methoden .drop() und .select() entfernst. Außerdem haben wir Alternativen vorgestellt, um bei Bedarf SQL-Ausdrücke für komplexere Auswahltechniken zu nutzen.

Wenn du deine Kompetenzen ausbauen und die leistungsfähigen Techniken von PySpark nutzen willst, schau dir diese Kurse und Materialien an: 

FAQs

Wie entferne ich Spalten per Regex in PySpark?

Um Spalten mithilfe eines Regex-Musters in PySpark zu entfernen, kannst du die Spaltennamen mit einer List Comprehension und dem Modul re (für reguläre Ausdrücke) filtern und die gefilterte Liste dann an die Methode .drop() übergeben.

Wie entferne ich Spalten mit demselben Namen in PySpark?

PySpark erlaubt keine doppelten Spaltennamen innerhalb eines DataFrames. Wenn deine Datenquelle doppelte Namen hat, tritt beim Erstellen des DataFrames in der Regel ein Fehler auf. Am besten behebst du doppelte Namen bereits an der Quelle oder beim Erstellen des DataFrames.

Wie entferne ich Spalten mit nur Null-Werten in PySpark?

Um Spalten zu entfernen, die nur Null-Werte enthalten, können wir in PySpark zunächst die Anzahl der Nulls pro Spalte mit count(when(col(c).isNull(), c)) berechnen. Anschließend identifizieren wir Spalten, bei denen die Anzahl der Nulls der gesamten Zeilenzahl des DataFrames entspricht. Diese Spalten entfernen wir schließlich mit der Methode .drop().

Wie entferne ich Spalten in PySpark bedingt?

Verwende df.select([col for col in df.columns if condition]).


Maria Eugenia Inzaugarat's photo
Author
Maria Eugenia Inzaugarat
Themen
Big Data
Python

Lerne PySpark mit diesen Kursen!

Kurs

Feature Engineering mit PySpark

4 Std.
18.1K
Lerne die kniffligen Details, mit denen Data Scientists 70–80 % ihrer Zeit verbringen: Data Wrangling und Feature Engineering.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow
Ähnlich

Tutorial

Wie man in Python einen Eintrag aus einer Liste löscht

Lerne, wie du Elemente aus einer Liste in Python löschen kannst. Mach dich mit Methoden wie remove(), pop() und del für die Listenverwaltung vertraut.
Allan Ouko's photo

Allan Ouko

7 Min.

Tutorial

So kürzt man eine Zeichenfolge in Python: Drei verschiedene Methoden

Lerne die Grundlagen zum Entfernen von führenden und nachfolgenden Zeichen aus einer Zeichenfolge in Python.
Adel Nehme's photo

Adel Nehme

6 Min.

Tutorial

Loop-Schleifen in Python-Tutorial

Lerne, wie du For-Schleifen in Python umsetzt, um eine Sequenz oder die Zeilen und Spalten eines Pandas-DataFrame zu durchlaufen.
Aditya Sharma's photo

Aditya Sharma

5 Min.

Tutorial

Wie man Listen in Python aufteilt: Einfache Beispiele und fortgeschrittene Methoden

Lerne, wie du Python-Listen mit Techniken wie Slicing, List Comprehensions und itertools aufteilen kannst. Finde heraus, wann du welche Methode für die beste Datenverarbeitung nutzen solltest.
Allan Ouko's photo

Allan Ouko

11 Min.

Tutorial

Python-Arrays

Python-Arrays mit Code-Beispielen. Lerne noch heute, wie du mit Python NumPy Arrays erstellen und ausdrucken kannst!
DataCamp Team's photo

DataCamp Team

3 Min.

Tutorial

Python NaN: 4 Möglichkeiten, um in Python nach fehlenden Werten zu suchen

Schau dir 4 Möglichkeiten an, wie du NaN-Werte in Python mit NumPy und Pandas erkennen kannst. Lerne die wichtigsten Unterschiede zwischen NaN und None kennen, um Daten effizient zu bereinigen und zu analysieren.
Adel Nehme's photo

Adel Nehme

5 Min.

Mehr AnzeigenMehr Anzeigen