Panda's: kolommen selecteren op basis van voorwaarde
U kunt de volgende methoden gebruiken om kolommen in een pandas DataFrame op voorwaarde te selecteren:
Methode 1: selecteer kolommen met minimaal één rij die aan de voorwaarde voldoet
#select columns where at least one row has a value greater than 2
df. loc [:, (df > 2 ). any ()]
Methode 2: Selecteer kolommen waarvan alle rijen aan de voorwaarde voldoen
#select columns where all rows have a value greater than 2
df. loc [:, (df > 2 ). all ()]
Methode 3: selecteer kolommen met minimaal één rij die aan meerdere voorwaarden voldoet
#select columns where at least one row has a value between 10 and 15
df. loc [:, ((df>= 10 ) & (df<= 15 )). any ()]
De volgende voorbeelden laten zien hoe u elke methode kunt gebruiken met de volgende panda’s DataFrame:
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
Voorbeeld 1: selecteer de kolommen waarvan minimaal één rij aan de voorwaarde voldoet
We kunnen de volgende code gebruiken om kolommen uit het DataFrame te selecteren waarbij ten minste één rij in de kolom een waarde groter dan 2 heeft:
#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
Houd er rekening mee dat de kolommen appels en bananen beide worden geretourneerd omdat deze kolommen ten minste één rij hebben met een waarde groter dan 2.
Voorbeeld 2: Selecteer kolommen waarvan alle rijen aan de voorwaarde voldoen
We kunnen de volgende code gebruiken om kolommen uit het DataFrame te selecteren waarbij elke rij in de kolom een waarde groter dan 2 heeft:
#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
Houd er rekening mee dat alleen de appelkolom wordt geretourneerd, omdat dit de enige kolom is waarin elke rij in de kolom een waarde groter dan 2 heeft.
Voorbeeld 3: selecteer kolommen waarvan minimaal één rij aan meerdere voorwaarden voldoet
We kunnen de volgende code gebruiken om kolommen uit het DataFrame te selecteren waarbij ten minste één rij in de kolom een waarde tussen 10 en 15 heeft:
#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
Houd er rekening mee dat alleen de bananenkolom wordt geretourneerd, omdat dit de enige kolom is waarin ten minste één rij in de kolom een waarde tussen 10 en 15 heeft.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:
Hoe u kolommen op naam selecteert in Pandas
Hoe u kolommen op index selecteert in Pandas
Hoe u kolommen selecteert die een specifieke string bevatten in Pandas