Как рассчитать скользящее среднее для всех значений столбца данных в Python - PullRequest
2 голосов
/ 11 июня 2019

У меня есть кадр данных со столбцами A, B и C. C имеет значения 1, 2, 3, 4. Я хочу создать еще один столбец D со значениями, такими как - NaN, 1,5 (= (1 + 2) / 2), 2 (= (1 + 2 + 3) / 3, 2,5 (= (1 + 2 + 3 + 4) / 4). В основном скользящее среднее от 1-го элемента к i-му элементу, для которого необходимо рассчитать скользящее среднее. Справкаприветствуется.

Я использую python и пробовал rolling.mean(), но параметр windows -не использовать.

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

У Pandas есть встроенный метод «расширения», который делает именно то, что вы хотите сделать.

df = pd.DataFrame({'C': [1, 2, 3, 4]})
df['D']=df['C'].expanding(2).sum()/df['C'].expanding(2).count()
print(df)
0 голосов
/ 11 июня 2019

Вы можете рассчитать его, используя совокупную сумму для расчета сумм предыдущих элементов и деления этих сумм на количество элементов, использованных в сумме. Вот пример:

df = pd.DataFrame(data={'C': [1, 2, 3, 4]})
df['D'] = df['C'].cumsum() / range(1, df.shape[0] + 1)
...