Pandas : comment utiliser l’équivalent de np.where()
Vous pouvez utiliser la fonction NumPy Where() pour mettre à jour rapidement les valeurs d’un tableau NumPy à l’aide de la logique if-else.
Par exemple, le code suivant montre comment mettre à jour les valeurs d’un tableau NumPy qui remplissent une certaine condition :
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])
Si une valeur donnée dans le tableau était inférieure à 5 ou supérieure à 8, nous divisons la valeur par 2.
Sinon , nous avons laissé la valeur inchangée.
Nous pouvons effectuer une opération similaire dans un DataFrame pandas en utilisant la fonction pandaswhere() , mais la syntaxe est légèrement différente.
Voici la syntaxe de base utilisant la fonction NumPywhere() :
x = np.where(condition, value_if_true, value_if_false)
Et voici la syntaxe de base utilisant la fonction pandaswhere() :
df['col'] = (value_if_false).where(condition, value_if_true)
L’exemple suivant montre comment utiliser la fonction pandaswhere() dans la pratique.
Exemple : l’équivalent de np.where() dans Pandas
Supposons que nous ayons le DataFrame pandas suivant :
import pandas as pd
#create DataFrame
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)
A B
0 18 5
1 22 7
2 19 7
3 14 9
4 14 12
5 11 9
6 20 9
7 28 4
Nous pouvons utiliser la fonction pandaswhere() suivante pour mettre à jour les valeurs de la colonne A en fonction d’une condition spécifique :
#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)
A B
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
Si une valeur donnée dans la colonne A était inférieure à 20, nous multipliions la valeur par 2.
Sinon , nous avons divisé la valeur par 2.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Pandas : Comment compter les valeurs dans une colonne avec condition
Pandas : Comment supprimer des lignes dans DataFrame en fonction de la condition
Pandas : comment remplacer les valeurs dans une colonne en fonction de la condition