如何将含10、1000格式的Time列转为时间格式?解决pandas报错
解决时间列多格式转换问题
你的问题出在Time列存在两种不兼容的时间格式:部分是单/两位数字(如10代表10:00),部分是四位数字(如1000代表10:00),直接用%H:%M格式匹配自然会报错。可以通过统一格式后再转换解决,步骤如下:
统一格式为四位数字字符串
先把所有时间值转为字符串,再用zfill(4)在左侧补0,将所有值标准化为4位长度:weather['Time'] = weather['Time'].astype(str).str.zfill(4)这一步会把
10转为1000,9转为0900,原本的1000保持不变,确保所有值都是HHMM格式的字符串。转换为时间格式
用统一后的四位字符串匹配%H%M格式,再提取时间部分:weather['Time'] = pd.to_datetime(weather['Time'], format='%H%M').dt.time
如果后续遇到更复杂的混合格式(比如同时存在10:00、10、1000),可以先尝试用errors='coerce'转换能匹配的条目,再单独处理剩余值,但你的场景用上面的方法足够解决。
内容的提问来源于stack exchange,提问作者syed romain
相关产品推荐
相关产品推荐

