Как преобразовать столбец панд во время с миллисекундами? - PullRequest
0 голосов
/ 23 мая 2018

У меня есть столбец данных pandas, который в настоящее время считает pandas объектом.Это записано как «58: 42.5», которое представляет собой минуты, секунды и доли секунды.Я хочу преобразовать это в тип времени, чтобы я мог вычесть два столбца времени, которые мне нужны, чтобы получить длительность.

Я пробовал: merged['started_at'] = pd.to_datetime(merged['started_at'],format='%M:%S').dt.time

Однако, это возвращаетошибка, говорящая, что .5 не был преобразован.(ValueError: остаются не преобразованные данные: .5).Я могу преобразовать все свои два столбца данных времени в правильный формат, чтобы в конечном итоге я мог выполнять с ними математику.

Мои столбцы выглядят следующим образом:

start_at, конечный_кат

58: 42,5, 00: 02,3

00: 55,5, 02: 13,9

Спасибо за помощь.

1 Ответ

0 голосов
/ 23 мая 2018

Вы можете преобразовать в timedelta без указания формата:

x = '58:42.5'

res = pd.to_timedelta('00:'+x)

Timedelta('0 days 00:58:42.500000')

Это преобразование можно легко применить к серии:

merged['started_at'] = pd.to_timedelta('00:' + merged['started_at'], errors='coerce')

Ваши последующие операции, например, разницамежду timedelta объектами, должны следовать естественным образом.

...