Cole Starbuck
Cole Starbuck

Reputation: 613

Pandas DataFrame - 'cannot astype a datetimelike from [datetime64[ns]] to [float64]' when using ols/linear regression

I have a DataFrame as follows:

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

...and so on. The Date column is the issue. I'm trying to get the linear regression of the Date column with the Close column:

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

I get the following error:

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

I've tried multiple ways of getting rid of this error, for examples:

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

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

The second dates_input attempt returns the type as pandas.core.series.Series but I still get an error message.

Does anyone know how to get the Date column to work and get rid of this TypeError?

Upvotes: 21

Views: 34070

Answers (1)

jezrael
jezrael

Reputation: 863031

You need:

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

and then:

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

Upvotes: 17

Related Questions