Как рассчитать совокупный процент в Pandas


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

#calculate cumulative sum of column
df['cum_sum'] = df['col1']. cumsum ()

#calculate cumulative percentage of column (rounded to 2 decimal places)
df['cum_percent'] = round( 100 \*df.cum_sum /df['col1']. sum (), 2 )

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: вычислить совокупный процент в Pandas

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

import pandas as pd

#create DataFrame
df = pd.DataFrame({'year': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
 'units_sold': [60, 75, 77, 87, 104, 134, 120, 125, 140, 150]})

#view DataFrame
print(df)

 year units_sold
0 1 60
1 2 75
2 3 77
3 4 87
4 5 104
5 6 134
6 7 120
7 8 125
8 9 140
9 10 150

Затем мы можем использовать следующий код, чтобы добавить столбец, показывающий совокупное количество проданных единиц и совокупный процент проданных единиц:

#calculate cumulative sum of units sold
df['cum_sum'] = df['units_sold']. cumsum ()

#calculate cumulative percentage of units sold
df['cum_percent'] = round( 100 \*df.cum_sum /df['units_sold']. sum (), 2 )

#view updated DataFrame
print(df)

 year units_sold cum_sum cum_percent
0 1 60 60 5.60
1 2 75 135 12.59
2 3 77 212 19.78
3 4 87 299 27.89
4 5 104 403 37.59
5 6 134 537 50.09
6 7 120 657 61.29
7 8 125 782 72.95
8 9 140 922 86.01
9 10 150 1072 100.00

Мы интерпретируем кумулятивные проценты следующим образом:

  • 5,60% всех продаж были сделаны в первый год.
  • 12,59% всех продаж пришлось на 1-й и 2-й годы вместе взятые.
  • 19,78% всех продаж пришлось на первый, второй и третий годы вместе взятые.

И так далее.

Обратите внимание, что вы можете просто изменить значение в функции round() , чтобы также изменить количество отображаемых десятичных знаков.

Например, вместо этого мы могли бы округлить совокупный процент до нуля знаков после запятой:

#calculate cumulative sum of units sold
df['cum_sum'] = df['units_sold']. cumsum ()

#calculate cumulative percentage of units sold
df['cum_percent'] = round( 100 \*df.cum_sum /df['units_sold']. sum (), 0 )

#view updated DataFrame
print(df)

 year units_sold cum_sum cum_percent
0 1 60 60 6.0
1 2 75 135 13.0
2 3 77 212 20.0
3 4 87 299 28.0
4 5 104 403 38.0
5 6 134 537 50.0
6 7 120 657 61.0
7 8 125 782 73.0
8 9 140 922 86.0
9 10 150 1072 100.0

Совокупные проценты теперь округляются до нуля знаков после запятой.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в Python:

Как создать частотные таблицы в Python
Как рассчитать относительную частоту в Python

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.