Maison >développement back-end >Tutoriel Python >Comment sélectionner efficacement les données d'un DataFrame Pandas avec plusieurs critères complexes ?
Des critères de sélection complexes avec plusieurs conditions surviennent souvent dans les tâches de manipulation de données. Pandas fournit des méthodes et des idiomes pour gérer efficacement ces scénarios.
Exemple :
Considérez le DataFrame suivant :
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)]})
Problème :
Sélectionnez les valeurs de « A » où les valeurs correspondantes pour 'B' est supérieur à 50 et 'C' n'est pas égal à 900.
Solution :
Nous pouvons appliquer des opérations sur les colonnes pour obtenir des objets de série booléenne pour chaque condition :
df["B"] > 50 (df["B"] > 50) & (df["C"] != 900)
ou de manière équivalente :
(df["B"] > 50) & ~(df["C"] == 900)
Ces séries booléennes peuvent alors être utilisé pour indexer dans le DataFrame :
df["A"][(df["B"] > 50) & (df["C"] != 900)]
ou, en utilisant .loc :
df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]
Remarque :
Pour l'accès en écriture, il Il est recommandé d'utiliser .loc au lieu de chaîner des index, car ce dernier peut entraîner une vue au lieu d'une copie, entraînant des problèmes potentiels.
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!