你如何将pandas列转换为时间与毫秒?

时间:2018-05-23 00:05:21

标签: python pandas time series timedelta

我有一个pandas数据帧列,pandas目前认为它是一个对象。它被写成“58:42.5”,这是分钟然后秒和几分之一秒。我想将其转换为时间类型,以便我可以减去我需要的两个时间列来获得持续时间。

我试过了:       merged['started_at'] = pd.to_datetime(merged['started_at'],format='%M:%S').dt.time

然而,这会返回一个错误,指出.5未被转换。 (ValueError:未转换的数据仍然是:.5)。我可以将整个两列时间数据转换为正确的格式,这样我最终可以用它们进行数学运算。

我的专栏看起来像:

  

started_at,ended_at

     

58:42.5,00:02.3

     

00:55.5,02:13.9

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以转换为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个对象之间的差异,应该自然而然。