Maison >développement back-end >Tutoriel Python >Comment sélectionner efficacement les données d'un DataFrame Pandas avec plusieurs critères complexes ?

Comment sélectionner efficacement les données d'un DataFrame Pandas avec plusieurs critères complexes ?

DDD
DDDoriginal
2024-12-02 20:45:14580parcourir

How to Efficiently Select Data from a Pandas DataFrame with Multiple Complex Criteria?

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

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!

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