Home > Mobile >  What is the correct format code for this type of date?
What is the correct format code for this type of date?

Time:07-28

I have a numpy array (called dates) of dates (as strings) which I thought were in the form %Y-%m-%d %H:%M:%S. However, I get an error that I have dates such as 2021-05-11T00:00:00.0000000. Not sure where did that additional 'T' come and why is the time so precise. I am trying to get rid of the time and only have the date.

My code is here:

dates = dataset.iloc[:,0].to_numpy()

newDates = []
for i in range(0,len(dates)):
    newDates.append(datetime.strptime(dates[i], '%Y-%m-%dT%H:%M:%S.%f'))
    newDates[i] = newDates[i].strftime('%Y-%m-%d')

dates = newDates

I get an error saying "ValueError: unconverted data remains: 0". If I wrote instead

newDates.append(datetime.strptime(dates[i], '%Y-%m-%dT%H:%M:%S%f'))

I get an error "ValueError: unconverted data remains: .0000000". In which format should the date be given?

CodePudding user response:

If you have datetime in dataframe you can use pd.to_datetime and Series.dt.strftime for converting to desired format. pandas do all for you! (why convert values in dataframe to numpy.array.)

import pandas as pd

# example df
df = pd.DataFrame({'datetime': ['2021-05-11T00:00:00.0000000' , 
                                '2021-05-20T00:00:00.0000000' ,
                                '2021-06-24T00:00:00.0000000']})


df['datetime'] = pd.to_datetime(df['datetime']).dt.strftime('%Y-%m-%d')
print(df)

     datetime
0  2021-05-11
1  2021-05-20
2  2021-06-24

CodePudding user response:

Does this help? https://strftime.org/

The extra T can be seen after %Y-%m-%d

  • Related