我在数据框中有一个要转换为时间戳的列。但是,我正在努力操纵它,但格式有点奇怪。该列的格式为HHMMSS,但不包含前导零。
例如对于应该为“ 00:03:15”的时间,数据帧具有“ 315”。我想将后者转换为类似于前者的时间戳。这是该列的说明:
message_time
25
35
114
1421
...
235347
235959
谢谢
答案 0 :(得分:2)
使用Series.str.zfill
来添加前导零,然后使用to_datetime
:
s = df['message_time'].astype(str).str.zfill(6)
df['message_time'] = pd.to_datetime(s, format='%H%M%S')
print (df)
message_time
0 1900-01-01 00:00:25
1 1900-01-01 00:00:35
2 1900-01-01 00:01:14
3 1900-01-01 00:14:21
4 1900-01-01 23:53:47
5 1900-01-01 23:59:59
我认为最好用to_timedelta
创建时间增量:
s = df['message_time'].astype(str).str.zfill(6)
df['message_time'] = pd.to_timedelta(s.str[:2] + ':' + s.str[2:4] + ':' + s.str[4:])
print (df)
message_time
0 00:00:25
1 00:00:35
2 00:01:14
3 00:14:21
4 23:53:47
5 23:59:59