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
Libérer: 2024-12-01 21:07:11
original
579 Les gens l'ont consulté

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)]})
Copier après la connexion

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
Copier après la connexion

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)
Copier après la connexion

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)]
Copier après la connexion

Alternativement, en utilisant .loc syntaxe :

df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal