ironhide012
ironhide012

Reputation: 85

How to convert pandas data frame datetime column to int?

I am facing an issue while converting one of my datetime columns in to int. My code is:

df['datetime_column'].astype(np.int64)

The error which I am getting is:

invalid literal for int() with base 10: '2018-02-25 09:31:15'

I am quite clueless about what is happening as the conversion for some of my other datetime columns are working fine. Is there some issue with the range of the date which can be converted to int?

Upvotes: 4

Views: 15200

Answers (2)

Prayson W. Daniel
Prayson W. Daniel

Reputation: 15568

You would use

df['datetime_colum'].apply(lambda x:x.toordinal())

If it fails, the cause could be that your column is an object and not datetime. So you need:

df['datetime_colum'] = pd.to_datetime(df['datetime_colum'])

before sending it to ordinal.

If you are working on features engineering, you can try creating days between date1 and date2, get boolean for if it is winter, summer, autumn or spring by looking at months, and if you have time, boolean of if it is morning, noontime, or night, but all depending on your machines learning problem.

Upvotes: 5

Addem
Addem

Reputation: 3919

it seems you solved the problem yourself judging from your comment. My guess is that you created the data frame without specifying that the column should be read as anything other than a string, so it's a string. If I'm right, and you check the column type, it should show as object. If you check an individual entry in the column, it should show as a string.

If the issue is something else, please follow up.

Upvotes: 0

Related Questions