Как рассчитать совокупное среднее значение в Python


Кумулятивное среднее сообщает нам среднее значение ряда значений до определенной точки.

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

df['column_name']. expanding().mean ()

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

Пример: вычислить кумулятивное среднее значение в Python

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

import pandas as pd
import numpy as np

#create DataFrame
df = pd.DataFrame({'day': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
 'sales': [3, 6, 0, 2, 4, 1, 0, 1, 4, 7, 3, 3, 8, 3, 5, 5]})

#view first five rows of DataFrame
df.head ()

 day sales
0 1 3
1 2 6
2 3 0
3 4 2
4 5 4

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

#calculate average of 'sales' column
df['sales']. expanding().mean ()

0 3.000000
1 4.500000
2 3.000000
3 2.750000
4 3.000000
5 2.666667
6 2.285714
7 2.125000
8 2.333333
9 2.800000
10 2.818182
11 2.833333
12 3.230769
13 3.214286
14 3.333333
15 3.437500
Name: sales, dtype: float64

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

  • Совокупное среднее значение первой продажи равно 3 .
  • Совокупное среднее значение первых двух продаж равно 4,5 .
  • Совокупное среднее значение первых трех продаж равно 3 .
  • Совокупное среднее значение первых четырех продаж равно 2,75 .

И так далее.

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

#add cumulative average sales as new column
df['cum_avg_sales'] = df['sales']. expanding().mean ()

#view updated DataFrame
df

 day sales cum_avg_sales
0 1 3 3.000000
1 2 6 4.500000
2 3 0 3.000000
3 4 2 2.750000
4 5 4 3.000000
5 6 1 2.666667
6 7 0 2.285714
7 8 1 2.125000
8 9 4 2.333333
9 10 7 2.800000
10 11 3 2.818182
11 12 3 2.833333
12 13 8 3.230769
13 14 3 3.214286
14 15 5 3.333333
15 16 5 3.437500

Столбец cum_avg_sales показывает совокупное среднее значений в столбце «продажи».

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

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

Как вычислить усеченное среднее в Python
Как рассчитать среднее геометрическое в Python
Как рассчитать скользящие средние в Python