Вычислить среднее значение указанного диапазона значений в столбце pandas и сохранить как другой столбец - PullRequest
1 голос
/ 18 февраля 2020

Я могу вычислить среднее значение для а для l oop, но не кажется эффективным решением. Поэтому рассмотрим следующий DataFrame:

Index Numbers
    1      12
    2      19
    3      47
    4      78
    5      32
    6      63
    7      89

Я хочу вычислить среднее значение для каждого числа после 4-го значения для вышеуказанных четырех значений и сохранить его в соседний столбец. Таким образом, ожидаемый вывод :

Index Numbers Average
    1      12       
    2      19       
    3      47
    4      78      39
    5      32      44
    6      63      55
    7      89    65.5

Таким образом, среднее из первых четырех чисел, то есть индекс (от 1 до 4) равен 39, затем (от 2 до 5) - 44 и так далее. Есть ли эффективный способ сделать это? Спасибо.

1 Ответ

2 голосов
/ 18 февраля 2020

Использование Series.rolling с mean:

df['Average'] = df['Numbers'].rolling(4).mean()
print (df)
   Index  Numbers  Average
0      1       12      NaN
1      2       19      NaN
2      3       47      NaN
3      4       78     39.0
4      5       32     44.0
5      6       63     55.0
6      7       89     65.5

Возможные функции, реализованные для rolling:

Rolling.count Rolling.sum Rolling.mean Rolling.median Rolling.var Rolling.std Rolling.min Rolling.max Rolling.corr Rolling.cov Rolling.skew Rolling.kurt Rolling.apply Rolling.aggregate Rolling.quantile

...