Как посчитать совокупное число в пандах


Вы можете использовать следующие методы для вычисления совокупного числа в DataFrame pandas:

Метод 1: кумулятивный подсчет по группам

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

Способ 2: накопительный учет по нескольким группам

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

В следующих примерах показано, как использовать каждый метод на практике со следующим DataFrame pandas:

 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
Как рассчитать обратную накопительную сумму в пандах

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *