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

如何从Pandas DataFrame中筛选指定日期的行?以筛选2019年8月4日数据为例

解决方法:筛选DataFrame中指定日期的行

你的代码有两个关键问题导致无法运行:

  1. 缺少.dt访问器:对于Pandas的datetime64类型列,需要通过.dt访问器来获取年、月、日属性(直接访问.year只适用于单个datetime对象,而不是Series)。
  2. 逻辑运算符优先级问题:&的优先级高于==,所以需要给每个条件表达式单独加括号,否则Python会错误地计算运算顺序。

正确的写法

import pandas as pd

# 假设all_data已经是加载好的DataFrame,且'Order Date'是datetime类型
aug4 = all_data.loc[
    (all_data['Order Date'].dt.year == 2019) &
    (all_data['Order Date'].dt.month == 8) &
    (all_data['Order Date'].dt.day == 4)
]

更简洁的替代方案

如果你想简化代码,可以直接将Order Date转换为date类型后进行匹配,这样代码更易读:

target_date = pd.to_datetime('2019-08-04').date()
aug4 = all_data[all_data['Order Date'].dt.date == target_date]

另外,如果你的Order Date包含具体时间(比如2019-08-04 14:30:00),还可以用区间筛选的方式,确保所有当天的记录都被包含:

start = pd.to_datetime('2019-08-04')
end = start + pd.Timedelta(days=1)
aug4 = all_data[all_data['Order Date'].between(start, end, inclusive='left')]

这种方式会包含2019-08-04 00:00:00到2019-08-04 23:59:59之间的所有行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 17:17:26