Hoe het cumulatieve getal in panda's te berekenen
U kunt de volgende methoden gebruiken om een cumulatief getal in een Panda DataFrame te berekenen:
Methode 1: Cumulatief tellen per groep
df[' cum_count '] = df. groupby (' col1 '). cumcount ()
Methode 2: cumulatieve rekening door meerdere groepen
df[' cum_count '] = df. groupby ([' col1 ', ' col2 ']). cumcount ()
De volgende voorbeelden laten zien hoe u elke methode 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', 'G', 'F', 'G', 'G', 'F', 'F'], ' points ': [14, 22, 25, 34, 30, 12, 10, 18]}) #view DataFrame print (df) team position points 0 AG 14 1 AG 22 2 AG 25 3AF 34 4 BG 30 5 BG 12 6 BF 10 7 BF 18
Voorbeeld 1: Cumulatief tellen per groep bij Panda’s
We kunnen de volgende syntaxis gebruiken om een nieuwe kolom te maken met de naam team_cum_count , waarin het cumulatieve aantal van elk team in het DataFrame wordt weergegeven:
#calculate cumulative count by team
df[' team_cum_count '] = df. groupby (' team '). cumcount ()
#view updated DataFrame
print (df)
team position points team_cum_count
0 AG 14 0
1 AG 22 1
2 AG 25 2
3 AF 34 3
4 BG 30 0
5 BG 12 1
6 BF 10 2
7 BF 18 3
De nieuwe kolom met de naam team_cum_count bevat de cumulatieve telling van elk team , beginnend met de waarde nul.
Als je wilt dat de telling bij één begint, voeg je er eenvoudig één toe aan het einde van de regel:
#calculate cumulative count (starting at 1) by team
df[' team_cum_count '] = df. groupby (' team '). cumcount () + 1
#view updated DataFrame
print (df)
team position points team_cum_count
0 AG 14 1
1 AG 22 2
2 AG 25 3
3 AF 34 4
4 BG 30 1
5 BG 12 2
6 BF 10 3
7 BF 18 4
De nieuwe kolom met de naam team_cum_count bevat de cumulatieve telling van elk team , te beginnen met de waarde één.
Voorbeeld 2: Bereken het cumulatieve aantal per groep in Panda’s
We kunnen de volgende syntaxis gebruiken om een nieuwe kolom te maken met de naam team_pos_cum_count , waarin het cumulatieve aantal voor elk team en elke positie in het DataFrame wordt weergegeven:
#calculate cumulative count by team
df[' team_pos_cum_count '] = df. groupby ([' team ', ' position ']). cumcount ()
#view updated DataFrame
print (df)
team position points team_pos_cum_count
0 AG 14 0
1 AG 22 1
2 AG 25 2
3 AF 34 0
4 BG 30 0
5 BG 12 1
6 BF 10 0
7 BF 18 1
De nieuwe kolom met de naam team_pos_cum_count bevat de cumulatieve telling van elk team en elke positie , beginnend met een waarde van nul.
Opmerking : u kunt hier de volledige documentatie van de cumcount- functie in Panda’s vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in panda’s kunt uitvoeren:
Hoe specifieke kolommen in Panda’s op te tellen
Hoe kolommen op te tellen op basis van een voorwaarde in Pandas
Hoe een omgekeerde cumulatieve som in panda’s te berekenen