2-时间序列转换成稳定数据

import pandas as pd
import datetime

# 加载数据
def parser(x):
    return datetime.datetime.strptime(x, '%Y/%m/%d')

ser = pd.read_csv('../LSTM系列/LSTM单变量1/data_set/shampoo-sales.csv', 
                header=0, parse_dates=[0], index_col=0, date_parser=parser).squeeze('columns')

# 做差分,去趋势,获得差分序列
def difference(dataset, interval=1):
    diff = []
    for i in range(interval, len(dataset)):
        value = dataset[i] - dataset[i-interval]
        diff.append(value)
    return pd.Series(diff)

# 差分逆变换
def inverse_difference(history, yhat, interval=1):
    return yhat + history[-interval]

differenced = difference(ser, 1)
print(differenced.head())

inverted = []
for i in range(len(differenced)):
    value = inverse_difference(ser, differenced[i], len(ser)-i)
    inverted.append(value)
inverted = pd.Series(inverted)
print(inverted.head())

作者:lotuslaw

出处:https://www.cnblogs.com/lotuslaw/p/17103765.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   lotuslaw  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示