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

如何检查DataFrame最后一行的时间戳是否在两个时间段之间?

高效判断DataFrame最后一行时间是否在指定时段的方法

不用折腾between_time,直接提取最后一行时间的小时数做判断就行,这是最高效的方式,不用处理整个数据集:

方法一:直接操作Timestamp对象

先取出最后一行的时间值(这是个Timestamp对象),直接用.hour属性获取小时,再判断范围:

# 接你原有的代码
last_time = df.iloc[-1]['time']
# 判断是否在16:00-21:00之间(根据需求调整边界,比如要包含21:00就改成<=21)
is_in_target_range = 16 <= last_time.hour < 21

方法二:用pandas的dt属性批量提取小时后取最后一个值

如果习惯用pandas的链式操作,也可以这么写:

hour = df['time'].dt.hour.iloc[-1]
is_in_target_range = (hour >= 16) & (hour <= 21)

为什么你的between_time会报错?

between_time是给DatetimeIndex类型的索引用的方法,你当前的DataFrame索引是默认的整数索引,所以会报Index must be DatetimeIndex错误。就算你把索引改成time列,用between_time筛选后再判断最后一行是否在结果里,也完全没必要——毕竟我们只需要检查最后一行,没必要处理整个数据集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:25:57