Issue
I want to remove the date from datetime function in pandas and the following code works just fine.
df= pd.read_csv('data.csv')
df['Value']= df.Value.astype(float)
df['Time'] = pd.to_datetime(df['Time']).dt.time
df.set_index('Time',inplace=True)
But after that when I try to select rows based on the time using .loc function it gives me the following error.
df_to_plot = df.loc['09:43:00':'13:54:00']
TypeError: '<' not supported between instances of 'datetime.time' and 'str'
But the same code works fine without .dt.time as follows:
df= pd.read_csv('data.csv')
df['Value']= df.Value.astype(float)
df['Time'] = pd.to_datetime(df['Time'])
df.set_index('Time',inplace=True)
df_to_plot = df.loc['2022-07-28 09:43':'2022-07-28 13:54']
How can I remove date and still select rows based on time? Thank you.
Solution
The TypeError arrises because df['Time'] = pd.to_datetime(df['Time']).dt.time
turns df['Time']
into a datetime.time
object, whereas in your loc
statement, '09:43:00':'13:54:00'
is a string.
Try this:
df['Time'] = pd.to_datetime(df['Time']).dt.time.astype(str)
Answered By - Freda
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.