Хорошо. У меня есть DataFrame со столбцом «Power», в котором сообщается о производстве панели, измеренной с интервалом в 30 минут.
Я бы хотел разработать «фильтр прогнозирования» для дня, день делится с интервалом в 30 минут, и для каждого интервала прогноз x использует «экспоненциальное взвешенное скользящее среднее, поэтому $ x» (i ) = \ alpha x '(i-1) + (1+ \ alpha) x (i) $
У меня есть фрейм данных с именем r, и я использовал следующий метод для добавления нового столбца с именем 'ewm', который выполняет вышеуказанную EWMA.
def myewm(data,alpha=0.5,w=48):
data['ewm'] = 0
for i in range(w):
data.iloc[i::w,7] = data.iloc[i::w].Panel.ewm(alpha=0.5,adjust=False).mean()
Очевидно, я хочу знать, есть ли лучший способ сделать это, используя какой-либо другой вызов API Pandas. Обратите внимание, что функция .ewm не может быть использована для всех данных, так как в каждом слоте вы должны делать ewm данных этого слота.
Может быть, с помощью группового? или другая функция для сбора данных, которые устраняют некоторые ограничения.