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

Pandas判断连续分钟时间序列时结果全为True的问题排查

问题根因

你写的时间差计算逻辑本身没有问题,故障核心原因是**Date列未被转换为pandas的标准datetime时间类型**,仍为字符串/object格式,导致时间差计算完全失效。

你可以先执行以下命令验证列类型:

print(df['Date'].dtype)

如果输出结果不是datetime64[ns]类的时间类型,即可确认问题。

故障逻辑说明

当Date列为非时间类型时:

  • df['Date'].diff()无法计算合法时间差,所有行返回空值NaN
  • 后续.dt.total_seconds()、除以60的计算全部返回空值
  • 空值和1做ne(1)(不等于1)判断时,永远返回True,因此所有行的g列结果全为True,和你观测到的现象完全吻合。
修复方案

先将Date列转换为标准时间类型,再执行原有连续判断逻辑即可:

# 先转换时间类型
df['Date'] = pd.to_datetime(df['Date'])
# 再执行连续分钟判断
df['g'] = df['Date'].diff().dt.total_seconds().div(60).ne(1)

注:第一行数据因为没有前序时间做差,diff()计算结果本身就是NaN,ne(1)返回True,刚好符合你要的「连续段起始行标记为True、连续相邻行标记为False、断点行标记为True」的逻辑,不需要额外调整。

执行后输出结果和你的预期完全一致:

Datemeterg
2009-02-13 13:23:0053.49True
2009-02-13 13:24:0064.91False
2009-02-13 13:25:0032.04False
2009-02-13 13:26:0045.94False
2009-02-13 15:45:0045.94True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:30:11