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

如何使用Python Pandas按日期、小时、分钟筛选DataFrame行数据

问题原因

你的报错核心来自两个问题:

  1. pandas中Datetime类型的Series不能直接调用.day/.hour/.minute属性,需要通过.dt访问器才能调用时间相关的属性,这就是报'Series' object has no attribute 'day'的根本原因
  2. 多条件逻辑运算时,每个独立条件都需要用括号包裹,否则会因为运算符优先级错误导致结果不符合预期

修正后代码

import pandas as pd

# read_csv时的parse_dates参数已经完成了时间类型转换,后面重复的pd.to_datetime可以省略
data = pd.read_csv("Data\\09-16-21 AMC-5min", parse_dates=["Datetime"])

# 每个独立条件加括号,时间属性通过.dt访问器调用
newData = data[
    (data.Datetime.dt.day == data.Datetime.dt.day.max()) 
    & (data.Datetime.dt.hour == 9) 
    & (data.Datetime.dt.minute == 30)
]

print(newData)

常用时间筛选扩展方法

如果需要更灵活的时间筛选,可以参考以下写法:

  • 按指定日期范围筛选
# 筛选2021年10月1日至2021年10月15日的所有数据
data[data.Datetime.between('2021-10-01', '2021-10-15')]
  • 提取时间维度单独成列方便后续筛选
data['date'] = data.Datetime.dt.date
data['hour'] = data.Datetime.dt.hour
data['minute'] = data.Datetime.dt.minute

内容的提问来源于stack exchange,提问作者Zach Generic Name

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:09:03