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
Libérer: 2024-12-02 20:45:14
original
621 Les gens l'ont consulté

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

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

ou de manière équivalente :

(df["B"] > 50) & ~(df["C"] == 900)
Copier après la connexion

Ces séries booléennes peuvent alors être utilisé pour indexer dans le DataFrame :

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

ou, en utilisant .loc :

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

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!

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