Як розрахувати кумулятивну кількість у панд


Ви можете використовувати такі методи для обчислення сукупного числа в pandas DataFrame:

Метод 1: Кумулятивний підрахунок по групах

 df[' cum_count '] = df. groupby (' col1 '). cumcount ()

Спосіб 2: накопичувальний облік за кількома групами

 df[' cum_count '] = df. groupby ([' col1 ', ' col2 ']). cumcount ()

Наступні приклади показують, як використовувати кожен метод на практиці з такими pandas 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

Приклад 1: Кумулятивний підрахунок за групою в Pandas

Ми можемо використати наступний синтаксис, щоб створити новий стовпець під назвою team_cum_count , який відображає загальну кількість кожної команди в DataFrame:

 #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

Новий стовпець під назвою team_cum_count містить сукупний підрахунок кожної команди , починаючи з нуля.

Якщо ви хочете, щоб відлік починався з одиниці, просто додайте одиницю в кінець рядка:

 #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

Новий стовпець під назвою team_cum_count містить кумулятивну кількість кожної команди , починаючи зі значення один.

Приклад 2: обчисліть кумулятивну кількість груп у Pandas

Ми можемо використати такий синтаксис, щоб створити новий стовпець під назвою team_pos_cum_count , який відображає сукупну кількість для кожної команди та позиції в DataFrame:

 #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

Новий стовпець під назвою team_pos_cum_count містить сукупну кількість команд і позицій , починаючи з нуля.

Примітка : ви можете знайти повну документацію функції cumcount у pandas тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в pandas:

Як підсумувати певні стовпці в Pandas
Як підсумувати стовпці на основі умови в Pandas
Як розрахувати зворотну кумулятивну суму в pandas

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *