Maison >développement back-end >Tutoriel Python >Comment sous-définir un DataFrame Pandas en fonction de 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.
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.
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!