# Hoe voorwaarden toepassen in pandas DataFrames met where()

De Python pandas `DataFrame.where()` is ontworpen om te helpen bij **het conditioneel manipuleren van gegevens** in DataFrames. Hiermee kunnen programmeurs waarden in een [pandas DataFrame](https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/python-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:

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

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:

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

## 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:

```python
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)
```

De bovenstaande code produceert het volgende DataFrame:

```none
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.

```python
# 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)
```

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

```none
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:

```python
# 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)
```

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

```none
Region    Sales_Q1    Sales_Q2
0    North     15000.0     20000.0
1    South             NaN     25000.0
2     East             NaN             NaN
3     West             NaN             NaN
```


This is a markdown version of: [https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/python-pandas-dataframe-waar/](https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/python-pandas-dataframe-waar/) for AI/LLM consumption.