Предположим, ваш Smoothing Function
равен Correct
print(Imputed_Df.apply(Smoothing, axis=1))
и проверьте count
возвращенных столбцов из вашего df
, оно должно соответствовать 8
, как вы принимаете
Imputed_Df[['col1', 'col2', 'col3','col4','col5' , 'col6' , 'col7' , 'col8']]
если число выходных столбцов df не равно 8, попробуйте
import statsmodels
from statsmodels.tsa.holtwinters import SimpleExpSmoothing
def Smoothing(Imputed_Df):
my_df = Imputed_Df.copy()
for Col in Imputed_Df.columns:
fit = SimpleExpSmoothing(Imputed_Df[Col]).fit(smoothing_level=0.2, optimized=False)
my_df[Col] = fit.predict(start=Imputed_Df.index.min(), end=Imputed_Df.index.max())
return my_df
На самом деле я обнаружил, что данные временного ряда нерегулярны.
Imputed_Df = Imputed_Df.resample('H').pad() ##
Imputed_Df[['col1', 'col2', 'col3','col4','col5' , 'col6' , 'col7' , 'col8']] = Smoothing(Imputed_Df)
Я предпочитаю писать таким образом
Imputed_Df[Imputed_Df.columns + "_SES"]= Smoothing(Imputed_Df)