Home > Software design >  Issue with converting a pandas column from int64 to datetime64
Issue with converting a pandas column from int64 to datetime64

Time:07-29

I'm trying to convert a column of Year values from int64 to datetime64 in pandas. The column currently looks like

         Year

         2003
         2003
         2003
         2003
         2003
         ... 
         2021
         2021
         2021
         2021
         2021

However the data type listed when I use dataset['Year'].dtypes is int64.

That's after I used pd.to_datetime(dataset.Year, format='%Y') to convert the column from int64 to datetime64. How do I get around this?

CodePudding user response:

You have to assign pd.to_datetime(df['Year'], format="%Y") to df['date']. Once you have done that you should be able to see convert from integer.

df = pd.DataFrame({'Year': [2000,2000,2000,2000,2000,2000]})

df['date'] = pd.to_datetime(df['Year'], format="%Y")

df

The output should be:

    Year    date
0   2000    2000-01-01
1   2000    2000-01-01
2   2000    2000-01-01
3   2000    2000-01-01
4   2000    2000-01-01
5   2000    2000-01-01

So essentially all you are missing is df['date'] = pd.to_datetime(df['Year'], format="%Y") from your code and it should be working fine with respect to converting.

The pd.to_datetime() will not just return the Year (as far as I understood from your question you wanted the year), if you want more information on what .to_date_time() returns, you can see the documentation.

I hope this helps.

CodePudding user response:

You should be able to convert from an integer:

df = pd.DataFrame({'Year': [2003, 2022]})

df['datetime'] = pd.to_datetime(df['Year'], format='%Y')

print(df)

Output:

   Year   datetime
0  2003 2003-01-01
1  2022 2022-01-01
  • Related