Maison >développement back-end >Tutoriel Python >Comment sélectionner des valeurs DataFrame en fonction de plusieurs critères dans Pandas ?

Comment sélectionner des valeurs DataFrame en fonction de plusieurs critères dans Pandas ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-05 13:09:10924parcourir

How to Select DataFrame Values Based on Multiple Criteria in Pandas?

Sélection avec des critères complexes à partir de pandas.DataFrame

Sélection de valeurs spécifiques à partir d'un DataFrame en fonction de plusieurs critères

Supposons que nous ayons un DataFrame simple comme ce qui suit :

import pandas as pd
from random import randint

df = pd.DataFrame({'A': [randint(1, 9) for x in range(10)],
                   'B': [randint(1, 9)*10 for x in range(10)],
                   'C': [randint(1, 9)*100 for x in range(10)]})

Notre objectif est de sélectionner les valeurs de la colonne « A » qui répondent à des critères pour les valeurs correspondantes dans les colonnes « B » et « C ».

Approche utilisant l'indexation booléenne

Pour y parvenir, nous pouvons utiliser l'indexation booléenne. Tout d'abord, nous créons des objets de série booléenne pour chaque critère :

df["B"] > 50
(df["B"] > 50) & (df["C"] != 900)

Ces séries booléennes représentent les lignes qui satisfont aux critères respectifs. Nous pouvons ensuite utiliser ces séries comme indices pour sélectionner les valeurs souhaitées :

df["A"][df["B"] > 50]
df["A"][(df["B"] > 50) & (df["C"] != 900)]

Approche utilisant .loc

Nous pouvons également utiliser l'attribut .loc pour une indexation plus efficace. .loc nous permet de spécifier les lignes et les colonnes à récupérer à l'aide d'une seule instruction :

df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]

Conclusion

Les deux méthodes sélectionnent efficacement les valeurs du DataFrame en fonction de critères complexes. Le choix entre utiliser l'indexation booléenne ou .loc dépend des préférences personnelles et de la lisibilité du code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn