如何将非正统格式的时间转换为熊猫数据帧中的时间戳

时间:2019-07-10 12:15:05

标签: python pandas datetime timestamp

我在数据框中有一个要转换为时间戳的列。但是,我正在努力操纵它,但格式有点奇怪。该列的格式为HHMMSS,但不包含前导零。

例如对于应该为“ 00:03:15”的时间,数据帧具有“ 315”。我想将后者转换为类似于前者的时间戳。这是该列的说明:

message_time
25
35
114
1421
...
235347
235959

谢谢

1 个答案:

答案 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