Panda's: hoe gebruik je het equivalent van np.where()
U kunt de functie NumPy Where() gebruiken om snel de waarden van een NumPy-array bij te werken met behulp van if-else-logica.
De volgende code laat bijvoorbeeld zien hoe u waarden kunt bijwerken in een NumPy-array die aan een bepaalde voorwaarde voldoet:
import numpy as np #create NumPy array of values x = np. array ([1, 3, 3, 6, 7, 9]) #update valuesin array based on condition x = np. where ((x < 5) | (x > 8), x/2, x) #view updated array x array([0.5, 1.5, 1.5, 6. , 7. , 4.5])
Als een bepaalde waarde in de tabel kleiner dan 5 of groter dan 8 was, delen we de waarde door 2.
Anders laten we de waarde ongewijzigd.
We kunnen een soortgelijke bewerking uitvoeren in een pandas DataFrame met behulp van de pandaswhere() functie, maar de syntaxis is iets anders.
Hier is de basissyntaxis met behulp van de functie NumPywhere():
x = np. where (condition, value_if_true, value_if_false)
En hier is de basissyntaxis met behulp van de pandaswhere() functie:
df[' col '] = (value_if_false). where (condition, value_if_true)
In het volgende voorbeeld ziet u hoe u de functie pandaswhere() in de praktijk kunt gebruiken.
Voorbeeld: het equivalent van np.where() in Panda’s
Stel dat we de volgende panda’s DataFrame hebben:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' A ': [18, 22, 19, 14, 14, 11, 20, 28],
' B ': [5, 7, 7, 9, 12, 9, 9, 4]})
#view DataFrame
print (df)
AB
0 18 5
1 22 7
2 19 7
3 14 9
4 14 12
5 11 9
6 20 9
7 28 4
We kunnen de volgende pandaswhere()- functie gebruiken om de waarden in kolom A bij te werken op basis van een specifieke voorwaarde:
#update values in column A based on condition
df[' A '] = (df[' A '] / 2). where (df[' A '] < 20, df[' A '] * 2)
#view updated DataFrame
print (df)
AB
0 9.0 5
1 44.0 7
2 9.5 7
3 7.0 9
4 7.0 12
5 5.5 9
6 40.0 9
7 56.0 4
Als een bepaalde waarde in kolom A kleiner was dan 20, vermenigvuldigden we de waarde met 2.
Anders delen we de waarde door 2.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:
Panda’s: waarden tellen in een kolom met voorwaarde
Panda’s: rijen in DataFrame verwijderen op basis van voorwaarde
Panda’s: hoe waarden in een kolom te vervangen op basis van voorwaarde