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

Pandas如何处理.dt.time时间戳实现DataFrame指定条件筛选

问题解决方法

报错核心原因

  • 类型不匹配:enter_dt_tm用.dt.time提取的结果是datetime.time类型,无法直接和字符串格式的时间做比较,需要将比较阈值也转为同类型。
  • 运算符优先级错误:Pandas中&的优先级高于比较运算符,未给单个判断条件加括号会导致运算顺序错乱。
  • 逻辑判断错误:「时间不在07:40到08:00区间」不能写作时间<=07:40 且 时间>=08:00,这两个条件无法同时成立,需要用取反逻辑实现。

可行代码

首先导入datetime工具类:

import datetime

再执行筛选逻辑:

# 定义阈值
min_duration = datetime.timedelta(minutes=15)
time_low = datetime.time(7, 40, 0)
time_high = datetime.time(8, 0, 0)

# 构造筛选条件
cond1 = df_to_db['08:00-23:00'] >= min_duration
cond2 = ~((df_to_db['enter_dt_tm'].dt.time >= time_low) & (df_to_db['enter_dt_tm'].dt.time <= time_high))

# 合并条件筛选
test_df = df_to_db[cond1 & cond2]
print(test_df)

运行上述代码后得到的结果就是符合要求的第一行数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:15:04