Maison >développement back-end >Tutoriel Python >Comment sélectionner les lignes Pandas DataFrame en fonction de critères multicolonnes complexes ?

Comment sélectionner les lignes Pandas DataFrame en fonction de critères multicolonnes complexes ?

DDD
DDDoriginal
2024-12-01 21:07:11582parcourir

How to Select Pandas DataFrame Rows Based on Complex Multi-Column Criteria?

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

Dans l'analyse de données à l'aide de Pandas, nous devons souvent sélectionner des lignes ou des colonnes spécifiques en fonction de critères complexes critères. Cette question montre comment sélectionner les valeurs de la colonne « A » étant donné que les valeurs correspondantes pour « B » et « C » remplissent certaines conditions.

Pour comprendre le problème, créons un exemple de DataFrame :

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)]})

Maintenant, nous voulons sélectionner des valeurs de « A » qui satisfont aux conditions suivantes :

  • La valeur correspondante pour « B » doit être supérieur à 50.
  • La valeur correspondante pour 'C' ne doit pas être égale à 900.

Pour résoudre ce problème, nous pouvons utiliser les opérations de colonne de Pandas :

df["B"] > 50

Cela crée un objet série booléen où chaque élément correspond à une ligne dans 'B' et indique si la valeur 'B' respective est supérieure à 50.

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

Cela exploite les opérateurs de diffusion et logiques pour combiner les objets booléens Series, créant ainsi une nouvelle série où chaque élément indique si la ligne correspondante remplit les deux conditions.

Utiliser cette série comme un index, on peut extraire les valeurs 'A' :

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

Alternativement, en utilisant .loc syntaxe :

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

Cette approche extrait efficacement les lignes qui répondent aux critères spécifiés, permettant une analyse ou des opérations plus approfondies sur les données sélectionnées.

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
Article précédent:Puzzles Python Day-LoopingArticle suivant:Puzzles Python Day-Looping