相关疑难解决方法(0)

使用Scikit Learn对时间序列pandas数据框进行线性回归

我正在尝试使用scikit学习线性回归量对pandas数据帧进行简单的线性回归.我的数据是时间序列,pandas数据框有一个日期时间索引:

                value
2007-01-01    0.771305
2007-02-01    0.256628
2008-01-01    0.670920
2008-02-01    0.098047
Run Code Online (Sandbox Code Playgroud)

做一些简单的事情

from sklearn import linear_model

lr = linear_model.LinearRegression()

lr(data.index, data['value'])
Run Code Online (Sandbox Code Playgroud)

不起作用:

float() argument must be a string or a number
Run Code Online (Sandbox Code Playgroud)

所以我尝试创建一个包含日期的新列,以尝试对其进行转换:

data['date'] = data.index
data['date'] = pd.to_datetime(data['date'])
lr(data['date'], data['value'])
Run Code Online (Sandbox Code Playgroud)

但现在我得到:

ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
Run Code Online (Sandbox Code Playgroud)

因此回归量无法处理日期时间.我看到了一些将整数数据转换为datetime的方法,但是找不到从datetime转换为integer的方法,例如.

这样做的正确方法是什么?

PS:我对使用scikit感兴趣,因为我打算稍后用它做更多的东西,所以现在没有statsmodels.

python pandas

10
推荐指数
1
解决办法
8602
查看次数

标签 统计

pandas ×1

python ×1