Panda's: extraheer kolomwaarde op basis van een andere kolom
U kunt de functie query() in panda’s gebruiken om de waarde in de ene kolom te extraheren op basis van de waarde in een andere kolom.
Deze functie gebruikt de volgende basissyntaxis:
df. query (" team=='A' ")[" points "]
In dit specifieke voorbeeld wordt elke waarde uit de puntenkolom gehaald waarbij de teamkolom gelijk is aan A.
De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken met de volgende panda’s DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'], ' points ': [11, 28, 10, 26, 6, 25, 29, 12]}) #view DataFrame print (df) team position points 0 AG 11 1 AG 28 2 AF10 3AF 26 4 BG 6 5 BG 25 6 BF 29 7 BF 12
Voorbeeld 1: Kolomwaarden extraheren op basis van een vervulde voorwaarde
De volgende code laat zien hoe u elke waarde uit de puntenkolom kunt extraheren, waarbij de waarde van de teamkolom gelijk is aan ‚A‘:
#extract each value in points column where team is equal to 'A' df. query (" team=='A' ")[" points "] 0 11 1 28 2 10 3 26 Name: points, dtype: int64
Deze functie retourneert de vier waarden in de puntenkolom waarbij de overeenkomstige waarde in de teamkolom gelijk is aan „A“.
Voorbeeld 2: Kolomwaarden extraheren op basis van een van de vele voorwaarden waaraan is voldaan
De volgende code laat zien hoe u elke waarde kunt extraheren uit de puntenkolom waarbij de waarde van de teamkolom gelijk is aan ‚A‘ of de waarde van de positiekolom gelijk is aan ‚G‘:
#extract each value in points column where team is 'A' or position is 'G' df. query (" team=='A' | position=='G' ")[" points "] 0 11 1 28 2 10 3 26 4 6 5 25 Name: points, dtype: int64
Deze functie retourneert de zes waarden in de puntenkolom waarbij de corresponderende waarde in de teamkolom gelijk is aan „A“ of de waarde in de positiekolom gelijk is aan „G“.
Voorbeeld 3: Kolomwaarden extraheren op basis van het voldoen aan meerdere voorwaarden
De volgende code laat zien hoe u elke waarde uit de puntenkolom kunt extraheren, waarbij de waarde van de teamkolom gelijk is aan ‚A‘ en de waarde van de positiekolom gelijk is aan ‚G‘:
#extract each value in points column where team is 'A' and position is 'G' df. query (" team=='A' & position=='G' ")[" points "] 0 11 1 28 Name: points, dtype: int64
Deze functie retourneert de twee waarden in de puntenkolom waarbij de corresponderende waarde in de teamkolom gelijk is aan „A“ en de waarde in de positiekolom gelijk is aan „G“.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in panda’s kunt uitvoeren:
Panda’s: kolommen selecteren op basis van voorwaarde
Panda’s: verwijder rijen op basis van meerdere voorwaarden
Panda’s: update kolomwaarden op basis van een ander DataFrame