Ga naar hoofdinhoud

PySpark: Hoe verwijder je een kolom uit een DataFrame

In PySpark kun je één of meerdere kolommen uit een DataFrame verwijderen met de methode .drop("column_name") voor één kolom of .drop(["column1", "column2", ...]) voor meerdere kolommen.
Bijgewerkt 2 okt 2026  · 6 min lezen

Verken met AI

ChatGPTClaudePerplexity
Datacleaning en -voorbereiding zijn essentiële stappen in elk data science- of data engineering-project. Om de kwaliteit en betrouwbaarheid van onze data te waarborgen, moeten we inconsistenties, fouten en missende waarden opsporen en aanpakken.

PySpark is bijzonder handig bij grote datasets, omdat het efficiënte methoden biedt om onze dataset op te schonen. In dit artikel focussen we op een veelvoorkomende schoonmaaktaak: hoe je kolommen verwijdert uit een DataFrame met de PySpark-methoden .drop() en .select().

Wil je meer leren over PySpark? Bekijk dan deze cursus Introduction to PySpark.

 

Waarom kolommen verwijderen in PySpark DataFrames?

Kolommen verwijderen is een veelvoorkomende stap in datapreprocessing om verschillende redenen. Het weghalen van onnodige of irrelevante kolommen kan de hoeveelheid data die we moeten verwerken flink verminderen. Dit stroomlijnt onze dataset, maakt analyse eenvoudiger en kan de prestaties van onze PySpark-jobs verbeteren.

Daarnaast houdt data voorbereiden voor machine learning vaak in dat je kolommen weglaat die niet bijdragen aan de nauwkeurigheid van het model of juist ruis introduceren. Deze stap kan leiden tot efficiëntere en effectievere modellen.

Tot slot kan het verwijderen van kolommen een strategie zijn om de datakwaliteit te verbeteren. Als een kolom een hoog percentage missende waarden of foutieve data bevat, kan verwijderen de beste keuze zijn.

Hoe verwijder je één kolom uit een PySpark DataFrame

Stel, we hebben een DataFrame df met vijf kolommen: player_name, player_position, team, minutes_played en score. De kolom minutes_played heeft veel missende waarden, dus we willen die verwijderen.

In PySpark kunnen we één kolom uit een DataFrame verwijderen met de methode .drop().

De syntax is df.drop("column_name") waarbij:

  • df het DataFrame is waaruit we de kolom willen verwijderen
  • column_name de te verwijderen kolomnaam is.

De methode df.drop() retourneert een nieuw DataFrame waarin de opgegeven kolommen zijn verwijderd.

Zo kun je een kolom verwijderen:

df_dropped = df.drop("minutes_played")

Hoe verwijder je meerdere kolommen uit een PySpark DataFrame

Stel dat we ons DataFrame df willen analyseren, maar het team en de positie van de speler niet mee willen nemen—dus we willen beide kolommen verwijderen. Er zijn meerdere manieren om dit te doen, laten we de opties bekijken.

Om meerdere kolommen uit een PySpark DataFrame te verwijderen, kunnen we een lijst met kolomnamen doorgeven aan de methode .drop(). Dat kan op twee manieren:

# Optie 1: Namen als lijst doorgeven
df_dropped = df.drop(["team", "player_position"])

# Optie 2: Namen als losse argumenten doorgeven
df_dropped = df.drop("team", "player_position")

Als alternatief kunnen we meerdere .drop()-aanroepen achter elkaar koppelen. Hoewel dit technisch werkt, wordt het over het algemeen niet gezien als de meest efficiënte of elegante aanpak. Elke aanroep creëert een nieuw DataFrame, wat extra overhead kan geven, zeker bij grotere datasets.

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

Kolommen conditioneel verwijderen

In plaats van op te geven welke kolommen we willen verwijderen, kunnen we de methode omdraaien en alleen die kolommen selecteren die aan een voorwaarde voldoen. Zo bevat het geretourneerde DataFrame de ongewenste kolommen niet meer. 

Met .select()

We kunnen in PySpark de methode .select() gebruiken in combinatie met een list comprehension om één of meerdere kolommen te verwijderen op basis van bepaalde criteria. De methode is flexibel en kan worden gebruikt voor zowel eenvoudige als complexe voorwaarden. 

Deze methode volgt de syntax df.select([col for col in df.columns if condition]), waarbij:

  • df het DataFrame is waar je mee werkt.
  • condition het criterium is waarmee je de kolommen filtert die je wilt behouden.

Laten we weer met ons DataFrame df werken en alle kolommen selecteren behalve de kolom team:

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

Complexe voorwaarden met .selectExpr()

Als we bekend zijn met SQL en complexere voorwaarden willen toepassen bij het filteren van kolommen, biedt PySpark's .selectExpr()-methode een krachtige oplossing. Hiermee kunnen we SQL-achtige expressies gebruiken om kolommen rechtstreeks in onze PySpark-code te selecteren en te bewerken.

Neem bijvoorbeeld dit voorbeeld:

# Selecteer specifieke kolommen en maak een nieuwe kolom 'FullMatch'
df_sel = df.selectExpr("player_name", "player_position", "minutes_played >= 60 as FullMatch")

Hier sluiten we niet alleen een kolom uit. We:

  1. Selecteren de kolommen player_name en player_position.
  2. Maken een nieuwe kolom FullMatch die aangeeft of een speler een volledige wedstrijd heeft gespeeld (60 minuten of meer).

Deze flexibiliteit maakt .selectExpr() van onschatbare waarde in situaties waarin eenvoudige list comprehensions niet volstaan.

Best practices

Als we besluiten kolommen uit ons DataFrame te verwijderen, is het cruciaal om enkele best practices te volgen om dataintegriteit, leesbaarheid van de code en efficiëntie te behouden.

1. Maak een back-up van je data: Voordat je wijzigingen aanbrengt in je DataFrame, zeker bij het verwijderen van kolommen, is het verstandig een back-upkopie te maken. Zo kun je indien nodig terug naar de oorspronkelijke data.

df_backup = df.persist()  # Cache het DataFrame om herberekenen later te vermijden

2. Verwijder met inplace=False (standaard): Standaard retourneert de methode .drop() een nieuw DataFrame zonder het origineel te wijzigen. Dat is over het algemeen veiliger. Als je er absoluut zeker van bent dat je het originele DataFrame wilt wijzigen, kun je inplace=True gebruiken, maar wees voorzichtig.

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

3. Documenteer je keuzes: Werk je aan een gezamenlijk project of verwacht je je code later te herzien, voeg dan opmerkingen toe waarin je uitlegt waarom je bepaalde kolommen hebt verwijderd. Deze documentatie biedt waardevolle context voor jezelf en anderen.

4. Overweeg kolommen te hernoemen: In plaats van kolommen te verwijderen, is het de moeite waard om na te gaan of hernoemen geschikter is, zeker als de informatie mogelijk waardevol is voor toekomstige analyses. PySpark biedt de methode .withColumnRenamed() om kolommen te hernoemen.

Conclusie

In deze tutorial hebben we geleerd hoe je één of meerdere kolommen verwijdert met de methoden .drop() en .select(). We hebben ook alternatieve methoden beschreven om SQL-expressies te gebruiken als we complexere selectietechnieken nodig hebben.

Wil je je skills uitbreiden en de krachtige technieken van PySpark benutten? Bekijk dan deze cursussen en materialen: 

FAQs

Hoe verwijder ik kolommen op basis van regex in PySpark?

Om kolommen op basis van een regex-patroon in PySpark te verwijderen, kun je de kolomnamen filteren met een list comprehension en de re-module (voor reguliere expressies), en vervolgens de gefilterde lijst doorgeven aan de methode .drop().

Hoe verwijder ik kolommen met dezelfde naam in PySpark?

PySpark staat geen dubbele kolomnamen binnen een DataFrame toe. Als je databron dubbele namen heeft, krijg je waarschijnlijk een fout bij het maken van het DataFrame. De beste aanpak is om de dubbele namen op te lossen bij de bron of tijdens het aanmaken van het DataFrame.

Hoe verwijder ik kolommen met alleen null-waarden in PySpark?

Om kolommen te verwijderen die alleen null-waarden bevatten in PySpark, kunnen we eerst het aantal nulls per kolom berekenen met count(when(col(c).isNull(), c)). Daarna identificeren we de kolommen waarvoor het aantal nulls gelijk is aan het totale aantal rijen in het DataFrame. Tot slot verwijderen we deze kolommen met de methode .drop().

Hoe verwijder ik kolommen conditioneel in PySpark?

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


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

Leer PySpark met deze cursussen!

Cursus

Feature Engineering met PySpark

4 uur
18.1K
Leer de fijne kneepjes die data scientists 70-80% van hun tijd besteden aan: data wrangling en feature engineering.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken