Python datetime格式转换问题:时间戳转格式报错及年份修正需求
Python pandas日期时间格式转换解决方案
错误原因说明
- 拆分后单独用时间列匹配含月日的格式,输入内容和格式规则不匹配,触发ValueError
- Python datetime标准库不识别
24:00:00格式,需要提前转换为下一天的0点
完整解决代码
不需要提前拆分日期时间列,直接处理原始Date/Time列即可:
import pandas as pd # 先标记所有含24:00:00的行,解决Python不识别24点格式的问题 is_24h = df['Date/Time'].str.contains('24:00:00') # 将24:00:00替换为当天00:00:00,后续再统一偏移日期 df.loc[is_24h, 'Date/Time'] = df.loc[is_24h, 'Date/Time'].str.replace('24:00:00', '00:00:00') # 补全实际年份,这里示例为2024年,可根据你的实际数据修改 df['datetime'] = pd.to_datetime('2024/' + df['Date/Time'], format='%Y/%m/%d %H:%M:%S') # 给原24点的行日期加1天,对应实际时间 df.loc[is_24h, 'datetime'] = df.loc[is_24h, 'datetime'] + pd.Timedelta(days=1) # 去掉秒级信息,二选一即可 # 选项1:保留datetime格式,向下取整到分钟(推荐,方便后续时间计算) df['datetime'] = df['datetime'].dt.floor('min') # 选项2:转换为字符串格式,直接去掉秒展示 # df['datetime'] = df['datetime'].dt.strftime('%Y-%m-%d %H:%M')
结果说明
- 最终生成的
datetime列已经合并了日期时间,无需拆分多列 - 已经去掉了秒级信息,符合10分钟间隔的数据特性
- 年份可以根据你的实际数据修改代码里的
2024为对应年份即可
内容的提问来源于stack exchange,提问作者Loai Alnouri
相关产品推荐
相关产品推荐

