问题描述
python中对数据进行差分之后做预测,预测后的结果要返回到差分前的数据。
解决方案
利用pandas的cumsum()函数,该函数是累加和的意思。在累加和的数据上再加第一个数据就可以了。
举例:
差分后的数据进行反差分计算
import pandas as pd
df = pd.DataFrame({'a':[1,2,3,4,6,8,10]})
def inv_diff(diff_df, first_value, add_first=True):
"""
差分序列的索引从1开始
"""
diff_df.reset_index(drop=True, inplace=True)
print(diff_df)
diff_df.index = diff_df.index + 1
print(diff_df)
diff_df = pd.DataFrame(diff_df)
diff_df = diff_df.cumsum()
df = diff_df + first_value
if add_first:
df.loc[0] = first_value
df.sort_index(inplace=True)
return df
df1 = df.diff(1)
df1.dropna(inplace=True)
inv_diff(df1, 1)
结果:
原始数据:
差分后的数据:
反差分后的数据
该文章只对1阶差分的结果进行了反差分,高阶差分之后再更,如有更好方法,欢迎赐教!