我想从Pandas的datetime函数中删除日期,下面的代码可以正常工作。
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)
但是在那之后,当我尝试使用.loc函数根据时间选择行时,它给了我以下错误。
df_to_plot = df.loc['09:43:00':'13:54:00']
TypeError: '<' not supported between instances of 'datetime.time' and 'str'
但相同的代码在没有.dt.time的情况下也能正常工作,如下所示:
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']
我怎样才能删除日期并仍然基于时间选择行?谢谢。
2条答案
按热度按时间ltqd579y1#
出现TypeError是因为
df['Time'] = pd.to_datetime(df['Time']).dt.time
将df['Time']
转换为datetime.time
对象,而在loc
语句中,'09:43:00':'13:54:00'
是字符串。tktrz96b2#
尝试使用df.index = df.index.时间