【发布时间】:2018-11-01 20:02:24
【问题描述】:
我有一个 pandas 数据框列,pandas 目前认为它是一个对象。它写成“58:42.5”,即分钟、秒和秒的几分之一。我想将其转换为时间类型,这样我就可以减去我必须得到的两个时间列来获得持续时间。
我试过了:
merged['started_at'] = pd.to_datetime(merged['started_at'],format='%M:%S').dt.time
但是,这会返回一个错误,指出 .5 未转换。 (ValueError:未转换的数据仍然存在:0.5)。我可以将我的整个两列时间数据转换为正确的格式,以便我最终可以对它们进行数学运算。
我的专栏是这样的:
开始时间,结束时间
58:42.5 , 00:02.3
00:55.5 , 02:13.9
感谢您的帮助。
【问题讨论】:
-
.%f将转换微秒。 -
我无法复制您的问题 - 输出
0 00:58:42.500000; 1 00:00:55.500000 -
这不是问题,请阅读to_datetime doc。很明显,
pd.to_datetime(...,format='%M:%S.%f')'4/27/2018 2:55' 打嗝的原因是因为你错过了 m/d/Y 格式='%m/%d/%Y %M:%S.%f'。错误告诉你。 -
@kaecvtionr:不,我在回复之前阅读了整篇帖子三遍,但它并没有在任何地方这么说。当您到达像第 30,000 行这样的行时,没有什么不同的格式。请在您的问题中编辑缺失的信息。
标签: python pandas time series timedelta