在时间列中,有类似值:
Time
========
59:47
59:52
59:53
59:55
1:00:01
1:00:03
1:00:12
现在,我需要重塑hh:mm:ss之类的值
我尝试过这样的事情:
time_list = df7['Time'].tolist()
for i in time_list:
print(datetime.strptime(i,'%H:%M:%S'))
[ValueError:时间数据'36:21'与格式'%H:%M:%S'不匹配”
如果您可以将值规范化为始终为mm:ss
或hh:mm:ss
的形式,并且不包含其他任何元素,那么就像执行以下操作一样简单:
for time_string in time_list:
if time_string.count(':') == 1:
time_string = '00:' + time_string
print(datetime.strptime(time_string,'%H:%M:%S'))
让我们考虑问题中发布的样本数据:
time_list = ['59:47', '59:52', '59:53', '59:55', '1:00:01', '1:00:03', '1:00:12']
这是输出的内容:
1900-01-01 00:59:47
1900-01-01 00:59:52
1900-01-01 00:59:53
1900-01-01 00:59:55
1900-01-01 01:00:01
1900-01-01 01:00:03
1900-01-01 01:00:12
但是,我认为由于这是时间数据(不包含日期成分),因此time.strptime()
会是更好的选择:只需使用time.strptime()
而不是datetime.strptime()
来获得类似的内容:
time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=59, tm_sec=47, tm_wday=0, tm_yday=1, tm_isdst=-1)
希望有帮助! :)