Maison >développement back-end >Tutoriel Python >Comment sous-définir un DataFrame Pandas en fonction de plusieurs valeurs ?

Comment sous-définir un DataFrame Pandas en fonction de plusieurs valeurs ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-16 20:37:24217parcourir

How to Subset a Pandas DataFrame Based on Multiple Values?

Sous-ensemble d'un DataFrame Pandas basé sur plusieurs valeurs

Dans Pandas, le sous-ensemble d'un DataFrame basé sur une valeur spécifique est simple, comme le démontre l'exemple suivant :

import pandas as pd

# Dataframe initialization
df = pd.DataFrame({'A': [5, 6, 3, 4], 'B': [1, 2, 3, 5]})

# Subset based on a single value
x = df[df['A'] == 3]

Cependant, le défi se pose lors de la sélection de lignes qui correspondent à une liste de valeurs. Considérez le cas d'utilisation suivant :

# List of values to filter on
list_of_values = [3, 6]

# Subset attempt (incorrect syntax)
y = df[df['A'] in list_of_values]

Cette syntaxe entraînera une erreur, car Pandas nécessite une syntaxe légèrement différente pour créer un sous-ensemble en fonction de plusieurs valeurs.

Solution : utiliser isin() Méthode

La bonne façon de sous-ensembler un DataFrame en fonction d'une liste de valeurs consiste à utiliser la méthode isin(). Voici le code corrigé :

y = df[df['A'].isin(list_of_values)]

Sortie :

     A  B
1    6  2
2    3  3

La méthode isin() prend une liste ou un tableau de valeurs en entrée et renvoie un DataFrame contenant des lignes où correspond la colonne spécifiée n'importe quelle valeur dans l'entrée.

Sélection inverse

Pour sélectionner les lignes où les valeurs de colonne ne correspondent pas à la liste fournie, vous pouvez utiliser l'opérateur ~ en conjonction avec isin(). Par exemple :

# Inverse subset
z = df[~df['A'].isin(list_of_values)]

Sortie :

   A  B
0  5  1
3  4  5

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