In Pandas ist die Unterteilung eines DataFrames basierend auf einem bestimmten Wert unkompliziert, wie das folgende Beispiel zeigt:
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]
Die Herausforderung entsteht jedoch bei der Auswahl von Zeilen, die einer Werteliste entsprechen. Betrachten Sie den folgenden Anwendungsfall:
# List of values to filter on list_of_values = [3, 6] # Subset attempt (incorrect syntax) y = df[df['A'] in list_of_values]
Diese Syntax führt zu einem Fehler, da Pandas eine etwas andere Syntax für die Teilmenge basierend auf mehreren Werten erfordert.
Der richtige Weg, einen DataFrame basierend auf einer Liste von Werten zu unterteilen, ist die Verwendung der isin()-Methode. Hier ist der korrigierte Code:
y = df[df['A'].isin(list_of_values)]
Ausgabe:
A B 1 6 2 2 3 3
Die isin()-Methode verwendet eine Liste oder ein Array von Werten als Eingabe und gibt einen DataFrame zurück, der Zeilen enthält, in denen die angegebene Spalte übereinstimmt Beliebiger Wert in der Eingabe.
Um Zeilen auszuwählen, deren Spaltenwerte nicht mit der bereitgestellten Liste übereinstimmen, können Sie kann den ~-Operator in Verbindung mit isin() verwenden. Zum Beispiel:
# Inverse subset z = df[~df['A'].isin(list_of_values)]
Ausgabe:
A B 0 5 1 3 4 5
Das obige ist der detaillierte Inhalt vonWie unterteile ich einen Pandas-DataFrame basierend auf mehreren Werten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!