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

Einen Kommentar hinzufügen

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