Pandas filtre par plusieurs conditions

Pandas filtre par plusieurs conditions

La manipulation de dataframe la plus populaire dans les pandas est le filtrage. Dans cet article, nous examinerons comment utiliser plusieurs conditions pour filtrer un Pandas DataFrame. Dans Pandas, il existe plusieurs méthodes pour extraire les données du DataFrame en utilisant plusieurs conditions. Dans les exemples suivants, nous montrerons comment utiliser différentes fonctions pour filtrer DataFrame en utilisant plusieurs conditions.

Méthode 1: Utilisation d'Eval ()

eval () est utilisé pour évaluer une expression. Il agira donc comme un filtre dans le dataframe et renvoie les lignes qui correspondent à la condition.

Syntaxe

pandas.Dataframe_object [dataframe_object.eval («conditions»)]

Exemple 1

Créons un dataframe avec 6 colonnes et 4 lignes et retournons les lignes en fonction de la colonne de frais où l'ID est supérieur à 20, et le nom se termine par «N».

importer des pandas
Importer Numpy
Remarques = pandas.DataFrame ([[23, «Sravan», «Pass», 1000,34,56],
[21, «Siva», «échoué», 400,32,45],
[20, «Sahaja», «Pass», 100,78,90],
[22, «Suryam», «échec», 450,76,56]
], colonnes = ['id', 'name', 'status', 'fee', 'POINT1', 'POINTS2'])
Imprimer (Remarques)
imprimer()
# Renvoyez les lignes en fonction de la colonne de frais où l'ID est supérieur à 20 et le nom se termine par «N».
Imprimer (Remarques [Remarques.Eval («Id> 20 et nom.Str.Endswith ('n').valeurs")])

Sortir

ID Nom Status Frais Points 1 points2
0 23 Sravan Pass 1000 34 56
1 21 Siva Fail 400 32 45
2 20 Sahaja Pass 100 78 90
3 22 suryam fail 450 76 56
ID Nom Status Frais Points 1 points2
0 23 Sravan Pass 1000 34 56

Il n'y a qu'une seule ligne telle que le nom se termine par «n», et l'ID est supérieur à 20. Ici, nous avons spécifié deux conditions à l'aide de l'opérateur «et».

Exemple 2

Retournez les lignes en fonction de la colonne «Fee» où l'ID est supérieur à 20 et «Points1» est inférieur à 35, et le nom commence par «S».

importer des pandas
Importer Numpy
Remarques = pandas.DataFrame ([[23, «Sravan», «Pass», 1000,34,56],
[21, «Siva», «échoué», 400,32,45],
[20, «Sahaja», «Pass», 100,78,90],
[22, «Suryam», «échec», 450,76,56]
], colonnes = ['id', 'name', 'status', 'fee', 'POINT1', 'POINTS2'])
# Retournez les lignes en fonction de la colonne de frais où l'ID est supérieur à 20 et commence par "S" et Points1 moins de 35.
Imprimer (Remarques [Remarques.eval ("id> 20 et nom.Str.startSwith ('s').valeurs et points1 < 35")])

Sortir

ID Nom Status Frais Points 1 points2
0 23 Sravan Pass 1000 34 56
1 21 Siva Fail 400 32 45

Deux lignes correspondent à la condition.

Méthode 2: Utilisation de loc []

Syntaxe

Dataframe_object.loc []

Paramètre

Étiquette d'index: Liste des chaînes ou une seule chaîne des noms d'index de la ligne.

Exemple 1

Créer un dataframe nommé «Remarques» avec 6 colonnes. Renvoyons les lignes en fonction de la colonne de frais où les frais sont supérieurs à 300 et les points2 inférieurs à 76.

importer des pandas
Remarques = pandas.DataFrame ([[23, «Sravan», «Pass», 1000,34,56],
[21, «Siva», «échoué», 400,32,45],
[20, «Sahaja», «Pass», 100,78,90],
[22, «Suryam», «échec», 450,76,56]
], colonnes = ['id', 'name', 'status', 'fee', 'POINT1', 'POINTS2'])
# Afficher le dataframe - Remarques
Imprimer (Remarques)
imprimer()
# Retournez les lignes en fonction de la colonne de frais où les frais sont supérieurs à 300 et les points2 inférieurs à 76
Imprimer (Remarques.loc [(Remarques ['Fee']> 300) & (Remarques ['Points2'] < 76)])

Sortir

ID Nom Status Frais Points 1 points2
0 23 Sravan Pass 1000 34 56
1 21 Siva Fail 400 32 45
2 20 Sahaja Pass 100 78 90
3 22 suryam fail 450 76 56
ID Nom Status Frais Points 1 points2
0 23 Sravan Pass 1000 34 56
1 21 Siva Fail 400 32 45
3 22 suryam fail 450 76 56

Il y a 3 lignes où les frais sont supérieurs à 300 et des points2 inférieurs à 76. Ici, nous avons spécifié deux conditions avec l'opérateur '&'.

Exemple 2:

Créer un dataframe nommé «Remarques» avec 6 colonnes. Renvoyons les lignes en fonction de la colonne de frais où les frais sont supérieurs à 300 et les points2 inférieurs à 76.

importer des pandas
Remarques = pandas.DataFrame ([[23, «Sravan», «Pass», 1000,34,56],
[21, «Siva», «échoué», 400,32,45],
[20, «Sahaja», «Pass», 100,78,90],
[22, «Suryam», «échec», 450,76,56]
], colonnes = ['id', 'name', 'status', 'fee', 'POINT1', 'POINTS2'])
# Renvoyez les lignes en fonction de la colonne de frais où les frais sont supérieurs à 300 et les points2 inférieurs à 76, et le statut est «échoué».
Imprimer (Remarques.loc [(Remarques ['Fee']> 300) & (Remarques ['Points2'] < 76) & (remarks['status'] == 'fail')])

Sortir

ID Nom Status Frais Points 1 points2
1 21 Siva Fail 400 32 45
3 22 suryam fail 450 76 56

Il y a 2 lignes où les frais sont supérieurs à 300 et des points 2 supérieurs à 76, et le statut est «échoué». Ici, nous avons spécifié trois conditions avec l'opérateur '&'.

Méthode 3: Utilisation de Query ()

Query () prendra la condition comme une expression telle que les lignes sont filtrées dans le dataframe en fonction de l'expression fournie. Assurez-vous que vous devez écrire une expression à l'intérieur "".

Syntaxe

pandas.Dataframe_object.requête («expression»)

Exemple

Renvoyons les lignes en fonction de la colonne de frais où les frais sont supérieurs à 300 et les points2 inférieurs à 76.

Importer des pandas
Remarques = pandas.DataFrame ([[23, «Sravan», «Pass», 1000,34,56],
[21, «Siva», «échoué», 400,32,45],
[20, «Sahaja», «Pass», 100,78,90],
[22, «Suryam», «échec», 450,76,56]
], colonnes = ['id', 'name', 'status', 'fee', 'POINT1', 'POINTS2'])
# Retournez les lignes en fonction de la colonne de frais où les frais sont supérieurs à 300 et les points2 inférieurs à 76
Imprimer (Remarques.requête ("Frais> 300 et points2 < 76"))

Sortir

ID Nom Status Frais Points 1 points2
0 23 Sravan Pass 1000 34 56
1 21 Siva Fail 400 32 45
3 22 suryam fail 450 76 56

Il y a 3 lignes où les frais sont supérieurs à 300 et des points2 inférieurs à 76. Ici, nous avons spécifié deux conditions à l'aide de l'opérateur 'et'.

Conclusion

Le filtrage est l'opération Dataframe la plus souvent utilisée dans les pandas. Dans ce guide, nous avons délibéré comment vous filtrez DataFrame en utilisant plusieurs conditions. Après avoir couvert cet article, vous pourrez peut-être filtrer les données en utilisant vous-même plusieurs conditions. Nous avons mis en œuvre quelques exemples dans cet article pour vous apprendre à extraire les données de la dataframe à l'aide de plusieurs conditions en utilisant les différentes fonctions de Pandas et Numpy comme LOC [], Query () et Eval ().