Panda's: group by gebruiken met de where-voorwaarde


De eenvoudigste manier om group by te gebruiken met een Where- voorwaarde in panda’s is door de functie query() te gebruiken:

 df. query (" team == 'A' "). groupby ([" position "])[" points "]. mean (). reset_index ()

In dit specifieke voorbeeld wordt de gemiddelde waarde van punten berekend, gegroepeerd op positie , waarbij team gelijk is aan „A“ in sommige panda’s DataFrame.

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: Groeperen op gebruiken met de Where-voorwaarde in Panda’s

Stel dat we het volgende panda’s DataFrame hebben dat informatie bevat over verschillende basketbalspelers:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'F'],
                   ' points ': [22, 14, 15, 10, 8, 29, 33, 18]})

#view DataFrame
print (df)

  team position points
0 AG 22
1 AG 14
2 AF15
3 AF 10
4 AF 8
5 BG 29
6 BG 33
7 BF 18

We kunnen de volgende code gebruiken om de gemiddelde puntwaarde te berekenen, gegroepeerd op positie , waarbij het team gelijk is aan „A“:

 #calculate mean value of points, grouped by position, where team == 'A'
df. query (" team == 'A' "). groupby ([" position "])[" points "]. mean (). reset_index ()

        position points
0 F 11.0
1G 18.0

Uit het resultaat kunnen we zien:

  • De gemiddelde puntenwaarde voor spelers in positie “F” van team A is 11 .
  • De gemiddelde puntenwaarde voor spelers in de “G”-positie van team A is 18 .

Houd er rekening mee dat we ook de operator & in de functie query() kunnen gebruiken om rijen te vinden waarin aan meerdere voorwaarden wordt voldaan.

De volgende code laat bijvoorbeeld zien hoe u de gemiddelde puntwaarde kunt berekenen, gegroepeerd op position , waarbij team gelijk is aan ‚A‘ en positie gelijk is aan ‚G‘:

 #calculate mean value of points by position where team is 'A' and position is 'G'
df. query (" team=='A' & position=='G' "). groupby ([" position "])[" points "]. mean (). reset_index ()

	position points
0G 18.0

Uit het resultaat kunnen we zien dat de gemiddelde puntenwaarde voor spelers op positie „G“ in team A 18 is.

Omdat we twee voorwaarden hebben opgegeven in de functie query() , zijn alleen rijen gebruikt die aan beide voorwaarden voldoen.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:

Hoe u een GroupBy-som uitvoert in Pandas
Groupby en Plot gebruiken in Panda’s
Hoe u unieke waarden kunt tellen met GroupBy in Pandas

Einen Kommentar hinzufügen

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