Pandas: so wählen sie spalten basierend auf der bedingung aus


Sie können die folgenden Methoden verwenden, um Spalten in einem Pandas-DataFrame nach Bedingung auszuwählen:

Methode 1: Wählen Sie Spalten mit mindestens einer Zeile aus, die die Bedingung erfüllt

 #select columns where at least one row has a value greater than 2
df. loc [:, (df > 2 ). any ()]

Methode 2: Wählen Sie Spalten aus, in denen alle Zeilen die Bedingung erfüllen

 #select columns where all rows have a value greater than 2
df. loc [:, (df > 2 ). all ()]

Methode 3: Wählen Sie Spalten mit mindestens einer Zeile aus, die mehrere Bedingungen erfüllt

 #select columns where at least one row has a value between 10 and 15
df. loc [:, ((df>= 10 ) & (df<= 15 )). any ()]

Die folgenden Beispiele zeigen, wie jede Methode mit dem folgenden Pandas DataFrame verwendet wird:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' apples ': [7, 3, 3, 4, 3],
                   ' oranges ': [2, 0, 2, 0, 1],
                   ' bananas ': [5, 0, 4, 0, 12]},
                    index=[' Farm1 ',' Farm2 ',' Farm3 ',' Farm4 ',' Farm5 '])

#view DataFrame
print (df)

       apples oranges bananas
Farm1 7 2 5
Farm2 3 0 0
Farm3 3 2 4
Farm4 4 0 0
Farm5 3 1 12

Beispiel 1: Wählen Sie die Spalten aus, für die mindestens eine Zeile die Bedingung erfüllt

Wir können den folgenden Code verwenden, um Spalten aus dem DataFrame auszuwählen, bei denen mindestens eine Zeile in der Spalte einen Wert größer als 2 hat:

 #select columns where at least one row has a value greater than 2
df. loc [:, (df > 2 ). any ()]

	apples bananas
Farm1 7 5
Farm2 3 0
Farm3 3 4
Farm4 0 0
Farm5 3 12

Beachten Sie, dass beide Spalten „Äpfel “ und „Bananen “ zurückgegeben werden, da diese Spalten mindestens eine Zeile mit einem Wert größer als 2 enthalten.

Beispiel 2: Wählen Sie Spalten aus, in denen alle Zeilen die Bedingung erfüllen

Wir können den folgenden Code verwenden, um Spalten aus dem DataFrame auszuwählen, bei denen jede Zeile in der Spalte einen Wert größer als 2 hat:

 #select columns where every row has a value greater than 2
df. loc [:, (df > 2 ). all ()]

	apples
Farm1 7
Farm2 3
Farm3 3
Farm4 4
Farm5 3

Beachten Sie, dass nur die Spalte „Äpfel“ zurückgegeben wird, da dies die einzige Spalte ist, in der jede Zeile in der Spalte einen Wert größer als 2 aufweist.

Beispiel 3: Wählen Sie Spalten aus, bei denen mindestens eine Zeile mehrere Bedingungen erfüllt

Mit dem folgenden Code können wir Spalten aus dem DataFrame auswählen, bei denen mindestens eine Zeile in der Spalte einen Wert zwischen 10 und 15 hat:

 #select columns where every row has a value greater than 2
df. loc [:, ((df>= 10 ) & (df<= 15 )). any ()]

	bananas
Farm1 5
Farm2 0
Farm3 4
Farm4 0
Farm5 12

Beachten Sie, dass nur die Spalte „Bananen“ zurückgegeben wird, da es sich um die einzige Spalte handelt, in der mindestens eine Zeile in der Spalte einen Wert zwischen 10 und 15 aufweist.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:

So wählen Sie Spalten nach Namen in Pandas aus
So wählen Sie Spalten nach Index in Pandas aus
So wählen Sie in Pandas Spalten aus, die eine bestimmte Zeichenfolge enthalten

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert