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

Pandas转换DateTime格式时日月颠倒导致Elapsedtime计算异常

解决日期解析颠倒导致的累计时间错误问题

问题核心是pd.to_datetime的默认解析逻辑会把你数据里的日/月/年格式误判为月/日/年(美式日期规则),比如将01/04/2023解析成2023年1月4日而非实际的4月1日,最终导致时间差计算出现跨月跳变。

直接指定明确的日期格式是最可靠的修复方案,修改后的代码如下:

# 强制按日/月/年 时分秒的格式解析日期
df['Date_Time'] = pd.to_datetime(df['Date_Time'], format='%d/%m/%Y %H:%M:%S')
df['deltatime'] = (df['Date_Time'] - df['Date_Time'].shift(1)).dt.total_seconds()
df['deltatime'].iloc[0] = 0  # 将首个值填充为0而非NaN
df['Elapsedtime'] = df['deltatime'].cumsum()

额外说明:

  • 使用format='%d/%m/%Y %H:%M:%S'可以彻底避免格式混淆,让解析器严格遵循你数据的日期格式规则。
  • 把astype('timedelta64[s]')替换为dt.total_seconds()是pandas中提取时间差秒数的更规范写法,结果一致且可读性更强。
  • infer_datetime_format=True无效的原因是:当日期中的日和月数值都≤12时,解析器无法自动判断格式优先级,会默认采用美式格式解析,因此必须显式指定格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:57:02