Pandas Cas Quand

Pandas Cas Quand



Lorsqu'une condition est satisfaite ou remplie, une instruction case dans le langage pandas fournit une sortie ou renvoie une valeur. Une instruction case permet de comparer la valeur d'une variable à une plage de valeurs potentielles. Lorsque l'ensemble de valeurs est référencé ou transmis dans l'instruction case, chaque valeur à l'intérieur de l'ensemble est vérifiée par les cas ou les conditions à l'intérieur de l'instruction. Nous pouvons également utiliser l'instruction if-else pour effectuer la même opération. Si une certaine condition est vraie, l'instruction if-else provoque l'exécution d'un morceau de script. L'instruction if-else dit d'effectuer ceci si la condition est vraie et de le faire si ce n'est pas le cas. Dans ce didacticiel, nous effectuerons différentes opérations en utilisant des instructions case et des instructions if-else.

Comment utiliser la déclaration de cas Pandas ?

Les instructions de cas peuvent être créées de plusieurs manières. La fonction NumPy where(), qui utilise la syntaxe fondamentale suivante, est le moyen le plus simple de construire une instruction case dans un Pandas DataFrame :

df [ 'nom de colonne' ] = np.où ( condition 1 , 'valeur1',
np.où ( condition deux , 'valeur2',
np.où ( condition 3 , 'valeur3', 'valeur4' ) ) )







L'instruction ci-dessus vérifiera chaque condition pour la valeur et, si la condition est satisfaite, générera la sortie ou renverra la valeur par rapport à la condition.



Exemple # 1 : Instruction de cas Pandas utilisant la fonction where()

Commençons par créer une trame de données afin de pouvoir utiliser notre déclaration de cas. Pour créer la trame de données, nous allons d'abord importer les modules numpy et pandas afin de pouvoir utiliser leurs fonctionnalités. Le pd.Dataframe() sera utilisé pour créer notre data frame.







Nous avons créé le bloc de données 'df'. Un dictionnaire Python est passé à l'intérieur des fonctions pd.DataFrame() en tant qu'argument avec des clés et des valeurs. Nous utiliserons la fonction print() pour voir notre bloc de données.



Dans le bloc de données 'df', nous avons deux colonnes 'name' et 'marks' avec les valeurs ['Ron', 'Tim', 'Anna', 'Jack', 'Rob', 'Lucy'] et [4, 6 , 8, 6, 9, 10] respectivement. Supposons que le nom corresponde aux colonnes stockant les noms des étudiants et que la colonne 'notes' stocke le score d'un test récent. Maintenant, nous allons écrire une instruction case qui ajoute une nouvelle colonne nommée 'remarks' dont les valeurs sont basées sur les valeurs que nous avons spécifiées, pour chaque condition.

La méthode 'numpy.where()' fournit les indices d'éléments d'un tableau, d'une colonne ou d'une liste d'entrée qui satisfont la condition spécifiée. Dans le cas de commutation ci-dessus, la fonction np.where() vérifie chaque élément dans les colonnes 'marks'. Si la valeur est égale ou inférieure à 5, elle renverra « échec » en sortie. Si la valeur est inférieure ou égale à 7, il retournera satisfaisant, et si la valeur est inférieure ou égale à 9, il retournera « super ». S'il n'y en a pas, le résultat sera excellent.

Comme on peut le remarquer, la nouvelle colonne 'Remarques' est créée dans notre bloc de données 'df', stockant les valeurs renvoyées par l'instruction case ci-dessus.

Exemple #2 :

Essayons à nouveau l'instruction de cas ci-dessus avec une trame de données différente. Supposons que nous devions noter les joueurs en fonction de leur total de buts lors du tournoi de football précédent. Créons donc une trame de données pour stocker les enregistrements des joueurs de football.

Nous avons passé un dictionnaire avec les clés 'name' et 'goals' à l'intérieur de la fonction pd.DataFrame() pour créer notre bloc de données. Pour imprimer notre bloc de données, nous utiliserons la fonction d'impression.

Comme on peut le voir dans le bloc de données ci-dessus, nous avons deux colonnes : 'nom' et 'objectifs'. Dans la colonne nom, nous avons les noms des joueurs [‘John’, ‘Marty’, ‘Clay’, ‘Nick’, ‘Mike’, ‘Alex’, ‘Tom’, ‘Rocky’]. Dans la colonne des buts, nous avons le nombre total de buts marqués par chaque joueur lors du tournoi précédent. Nous allons maintenant utiliser notre énoncé de cas pour noter ces joueurs en fonction des buts qu'ils ont marqués.

Le cas ci-dessus est créé à l'aide de la fonction where(). À l'intérieur du cas, la fonction d'instruction vérifie chaque élément dans les colonnes 'marques' par rapport aux conditions. Si la valeur dans la colonne 'objectifs' est égale ou inférieure à 5, elle renverra 'C'. Si la valeur dans la colonne 'objectifs' est égale ou inférieure à 9, elle renverra 'B'. Il renverra un « A » si la valeur dans la colonne « objectifs » est égale ou supérieure à 10. Les valeurs renvoyées par la déclaration seront stockées dans la nouvelle colonne « évaluation ». Imprimons le 'df' pour voir les résultats.

La nouvelle colonne 'rating' est créée avec succès à l'aide du script ci-dessus.

Exemple # 3 : Instruction if-else de Pandas utilisant la fonction apply()

L'axe des lignes ou des colonnes du bloc de données est utilisé par la méthode apply() pour implémenter une fonction. Nous pouvons créer notre propre fonction définie et l'utiliser dans notre cadre de données dans les pandas. Il comprendra des conditions if-else. Commençons par créer notre bloc de données, puis nous créerons une fonction dans laquelle nous utiliserons une instruction if-else pour générer le résultat. Pour créer notre data frame, nous allons d'abord importer le module des pandas, puis nous passerons un dictionnaire dans la méthode pd.DataFrame().

Comme on peut le voir, notre bloc de données est composé de deux colonnes « A » stockant des valeurs numériques [23, 35, 64, 74, 85] et « B » avec des valeurs [45, 34, 61, 89, 27]. Nous allons maintenant créer une fonction qui déterminera quelle valeur est la plus grande parmi les deux colonnes de chaque ligne de notre bloc de données.

Vous pouvez utiliser la fonction Python lambda 'pandas. DataFrame.apply() » pour exécuter une expression. En Python, une fonction lambda est une fonction anonyme compacte qui accepte n'importe quel nombre d'arguments et exécute une expression. Dans le script ci-dessus, nous avons créé une déclaration de condition qui comparera la valeur des deux colonnes et stockera le résultat dans la nouvelle colonne 'comparaison'. Si la valeur de la colonne « A » est inférieure à la valeur de la colonne « B », il retournera « B est supérieur ». Si la condition n'est pas satisfaite, elle renverra 'A est supérieur'.

Exemple #4 :

Essayons un autre exemple en utilisant l'instruction if-else dans la fonction apply() avec une autre trame de données.

Supposons que notre base de données stocke les enregistrements des employés d'une entreprise. La colonne 'emp' stocke les noms des employés ['Franky', 'Harry', 'Luke', 'Peter', 'Andrew'], tandis que la colonne 'salary' stocke les salaires de chaque employé [1350, 1000, 900 , 1200, 980] dans la trame de données 'df'. Nous allons maintenant créer notre instruction if-else en utilisant la méthode apply().

La condition ci-dessus vérifiera chaque valeur dans la colonne 'salaire' et ajoutera 200 aux salaires des employés dont la valeur salariale est inférieure ou égale à 1000. Nous avons stocké les valeurs renvoyées par la fonction apply() dans la nouvelle colonne ' incrément'. Voyons les résultats du script ci-dessus.

Comme vous pouvez le voir, la fonction a réussi à ajouter 200 aux valeurs inférieures ou égales à 100. Les valeurs supérieures à 1000 sont restées inchangées.

Conclusion:

Dans ce tutoriel, nous avons vu que lorsque la condition est satisfaite, une instruction de ce type, appelée instruction case, renvoie une valeur. Nous avons vu comment vous pouvez créer une instruction case pour effectuer une opération ou une tâche requise. Dans ce tutoriel, nous avons utilisé la fonction np.where() et la fonction apply() pour créer des instructions case. Nous avons implémenté quelques exemples pour vous apprendre à utiliser les instructions case de pandas en utilisant la fonction where() et comment utiliser la fonction apply() pour créer des instructions case.