ValueError:Python panda中应出现hh:mm:ss格式错误



我定义了一个函数,它以时间为参数,并返回一天中的时间,如下所示:

def time_of_day(time):
#time = str(time) + ':00:00'
time = pd.to_timedelta(time)
if (time >= pd.to_timedelta('5:00:00')) & (time <= pd.to_timedelta('9:00:00')):
return 'Morning'
elif (time > pd.to_timedelta('9:00:00')) & (time <= pd.to_timedelta('16:00:00')):
return 'Day'
elif (time > pd.to_timedelta('16:00:00')) & (time <= pd.to_timedelta('22:00:00')):
return 'Evening'
else:
return 'Night' 

我有一个包含时间列的数据帧,数据帧如下所示:

df:

Month   Season  time

1       Summer  00:05:00
1       Summer  00:35:00
1       Summer  01:05:00
1       Summer  01:35:00
1       Summer  02:05:00

数据帧的数据类型为:

Month         int64
Season       object
time         object

当我将该函数应用于列df['time'].apply(time_of_day)时,我得到以下错误:

ValueError: expected hh:mm:ss format

我不确定我在哪里犯的错。有人能帮我纠正这个问题吗?

我认为数据是python对象时间,所以需要将它们转换为字符串:

df['time'].astype(str).apply(time_of_day)

最新更新