You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将pandas无日期的时间列舍入到最近的秒

错误原因

你指定的转换格式%H:%M:%S仅匹配到秒级别,无法适配部分行末尾的.600000类微秒后缀,因此触发未转换数据残留的报错。

调整方案

1. 修正时间转换逻辑

两种适配带/不带微秒的时间字符串的写法可选:

  • 写法一:明确指定格式,开启非严格匹配兼容无微秒的行
trip_28["time"] = pd.to_datetime(trip_28["time"], format="%H:%M:%S.%f", exact=False)
  • 写法二:不指定格式,让pandas自动推断,适配性更强
trip_28["time"] = pd.to_datetime(trip_28["time"])

2. 调整舍入逻辑

你示例中16:19:01.6转成16:19:02是四舍五入效果,原来的floor是向下取整,需要改成round,最后追加.dt.time去掉自动补全的日期前缀,仅保留时间部分:

# 四舍五入到秒,输出纯时间格式
trip_28["time"] = trip_28["time"].dt.round('1s').dt.time

效果验证

转换后结果和你预期完全一致:

  • 16:19:01.600000 → 16:19:02
  • 16:20:02.700000 → 16:20:03
  • 16:20:18 → 16:20:18

内容的提问来源于stack exchange,提问作者Joehat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 14:27:00