De Python pandas DataFrame.where() -functie is ontworpen om te helpen bij het conditioneel manipuleren van gegevens in DataFrames. Hiermee kunnen programmeurs waarden in een pandas DataFrame vervangen of maskeren op basis van een voorwaarde.

Wat is de syntaxis voor pandas DataFrame.where()?

De functie where() kan maximaal vijf parameters accepteren en heeft de volgende syntaxis:

DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None)
python

Wanneer toegepast op een DataFrame, blijven alleen de waarden die aan de opgegeven voorwaarde (cond) voldoen ongewijzigd. Alle andere waarden worden vervangen door wat u opgeeft in de parameter other.

Welke parameters kunnen worden gebruikt met pandas DataFrame.where()?

Pandas DataFrame.where() accepteert verschillende parameters die flexibel gegevensbeheer en -wijziging mogelijk maken:

Parameter Beschrijving Standaardwaarde
cond Voorwaarde waaraan moet worden voldaan om DataFrame-waarden ongewijzigd te laten
other De waarde die waarden vervangt die niet aan de voorwaarde voldoen
inplace Wanneer ingesteld op True, zal de bewerking het DataFrame direct wijzigen. False
axis Geeft aan op welke as de voorwaarde van toepassing is (axis=0 voor rijen, axis=1 voor kolommen) None
level Definieert het niveau van een multi-index waarop de voorwaarde moet worden toegepast. None

Hoe pandas DataFrame.where() te gebruiken

De functie where() kan nuttig zijn in verschillende scenario’s waarin voorwaardelijke gegevensmanipulatie vereist is. Dit kan bijvoorbeeld het opschonen van gegevens zijn of het aanmaken van nieuwe kolommen op basis van voorwaarden.

Waarden vervangen op basis van voorwaarden

Stel dat u een DataFrame hebt met de verkoopresultaten van een bedrijf en u wilt alleen de positieve resultaten weergeven. Negatieve resultaten moeten daarentegen worden vervangen door 0. U kunt dit doen met pandas DataFrame.where(). Laten we eerst een DataFrame maken:

import pandas as pd
# Create a sample DataFrame
data = {
    'Region': ['North', 'South', 'East', 'West'],
    'Sales_Q1': [15000, -5000, 3000, -1000],
    'Sales_Q2': [20000, 25000, -7000, 5000]
}
df = pd.DataFrame(data)
print(df)
python

De bovenstaande code produceert het volgende DataFrame:

Region    Sales_Q1    Sales_Q2
0    North         15000         20000
1    South         -5000         25000
2     East            3000         -7000
3     West         -1000            5000

Met where() kunt u alle negatieve waarden vervangen door 0. Zorg ervoor dat alleen kolommen met numerieke waarden worden opgenomen, anders werkt het niet.

# Replacing values using conditions
df_positive = df.copy()
df_positive[['Sales_Q1', 'Sales_Q2']] = df[['Sales_Q1', 'Sales_Q2']].where(df[['Sales_Q1', 'Sales_Q2']] > 0, 0)
print(df_positive)
python

Het resulterende DataFrame, df_positive, geeft alleen positieve verkoopresultaten weer en vervangt negatieve waarden door 0:

Region    Sales_Q1    Sales_Q2
0    North         15000         20000
1    South                 0         25000
2     East            3000                 0
3     West                 0            5000

Waarden maskeren met behulp van voorwaarden

Pandas DataFrame.where() kan ook worden gebruikt om waarden te maskeren. Dit betekent dat alleen specifieke delen van een DataFrame worden weergegeven. In het volgende voorbeeld willen we alleen waarden weergeven die boven een bepaalde drempelwaarde liggen (in dit geval 10000). Vergeet niet dat u ervoor moet zorgen dat u alleen kolommen met numerieke gegevens evalueert:

# Only display values over 10000
df_masked = df.copy()
df_masked[['Sales_Q1', 'Sales_Q2']] = df[['Sales_Q1', 'Sales_Q2']].where(df[['Sales_Q1', 'Sales_Q2']] > 10000)
print(df_masked)
python

Het resulterende DataFrame, df_masked, geeft alleen waarden weer die groter zijn dan 10000. NaN wordt gebruikt in plaats van alle andere waarden:

Region    Sales_Q1    Sales_Q2
0    North     15000.0     20000.0
1    South             NaN     25000.0
2     East             NaN             NaN
3     West             NaN             NaN
Ga naar hoofdmenu