как преобразовать время в неортодоксальном формате в метку времени в панде - PullRequest
2 голосов
/ 10 июля 2019

У меня в столбце данных есть столбец, который я хочу преобразовать в метку времени.Тем не менее, это немного странный формат, которым я пытаюсь манипулировать.Столбец имеет формат ЧЧММСС, но не содержит начальных нулей.

Например, для времени, которое должно быть «00: 03: 15», в кадре данных указано «315».Я хочу преобразовать последний в метку времени, аналогичную первой.Вот иллюстрация столбца:

message_time
25
35
114
1421
...
235347
235959

Спасибо

1 Ответ

2 голосов
/ 10 июля 2019

Используйте 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

На мой взгляд, здесь лучше создать timedeltas от 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
...