Python 熊猫数据帧&x27;无法键入从[datetime64[ns]]到[float64]';使用ols/线性回归时
我有一个数据框,如下所示:Python 熊猫数据帧&x27;无法键入从[datetime64[ns]]到[float64]';使用ols/线性回归时,python,pandas,dataframe,time-series,linear-regression,Python,Pandas,Dataframe,Time Series,Linear Regression,我有一个数据框,如下所示: 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列与Clos
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\u输入
尝试返回类型为pandas.core.series.series
,但我仍然收到一条错误消息
是否有人知道如何让Date
列正常工作并消除此类型错误?您需要:
ADBE['Date'] = ADBE['Date'].values.astype(float)
然后:
ols1 = pd.ols(y=ADBE['Close'], x=ADBE['Date'], intercept=True)
我犯了一个错误;对于可能犯同样错误的其他人;注意不要使用
Series.astype(float)
(如;pd.Series(ADBE['Date'].values)。astype(float)
;注意@jezrael的答案使用ndarray.astype(float)
(直接在.values.astype(float)
)