Pandas DataFrame - 当使用ols /线性回归时,'不能在[datetime64 [ns]]到[float64]'之类的日期时间

时间:2016-11-06 19:44:39

标签: python pandas dataframe time-series linear-regression

我有一个DataFrame如下:

   Ticker        Date  Close
0    ADBE  2016-02-16  78.88
1    ADBE  2016-02-17  81.85
2    ADBE  2016-02-18  80.53
3    ADBE  2016-02-19  80.87
4    ADBE  2016-02-22  83.80
5    ADBE  2016-02-23  83.07

......等等。 Date列就是问题所在。我正在尝试将Date列与Close列进行线性回归:

ols1 = pd.ols(y=ADBE['Close'], x=ADBE['Date'], intercept=True)

我收到以下错误:

TypeError: cannot astype a datetimelike from [datetime64[ns]] to [float64]

我尝试了多种方法来消除此错误,例如:

dates_input = ADBE['Date'].values.astype('datetime64[D]')

dates_input = ADBE['Date'].values.astype('float')

第二次dates_input尝试将类型返回为pandas.core.series.Series,但我仍然收到错误消息。

有谁知道如何让Date列工作并摆脱这种TypeError?

1 个答案:

答案 0 :(得分:3)

您需要:

ADBE['Date'] = ADBE['Date'].values.astype(float)

然后:

ols1 = pd.ols(y=ADBE['Close'], x=ADBE['Date'], intercept=True)