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

如何将含10、1000格式的Time列转为时间格式?解决pandas报错

解决时间列多格式转换问题

你的问题出在Time列存在两种不兼容的时间格式:部分是单/两位数字(如10代表10:00),部分是四位数字(如1000代表10:00),直接用%H:%M格式匹配自然会报错。可以通过统一格式后再转换解决,步骤如下:

  1. 统一格式为四位数字字符串
    先把所有时间值转为字符串,再用zfill(4)在左侧补0,将所有值标准化为4位长度:

    weather['Time'] = weather['Time'].astype(str).str.zfill(4)
    

    这一步会把10转为1000,9转为0900,原本的1000保持不变,确保所有值都是HHMM格式的字符串。

  2. 转换为时间格式
    用统一后的四位字符串匹配%H%M格式,再提取时间部分:

    weather['Time'] = pd.to_datetime(weather['Time'], format='%H%M').dt.time
    

如果后续遇到更复杂的混合格式(比如同时存在10:00、10、1000),可以先尝试用errors='coerce'转换能匹配的条目,再单独处理剩余值,但你的场景用上面的方法足够解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:01:00