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

使用.weekday()筛选DataFrame周末行报错,如何正确筛选?

筛选DataFrame中周六周日行的正确方法

错误原因

你遇到的AttributeError: 'Series' object has no attribute 'weekday',是因为直接对Pandas Series调用了weekday()方法或访问weekday属性——这是Python原生datetime对象的用法,而Pandas的日期型Series需要通过.dt访问器来调用日期相关属性/方法。另外,你用了Python的or运算符,这不适用于Series的元素级逻辑判断,要改用|。

正确步骤

  1. 确保日期列是datetime类型(如果你的dateRep还没转成datetime的话):
import pandas as pd
df['dateRep'] = pd.to_datetime(df['dateRep'])
  1. 筛选周六(weekday=5)和周日(weekday=6)的行
    两种写法都可以:
  • 方法一:用isin更简洁
weekend_df = df.loc[df['dateRep'].dt.weekday.isin([5, 6])]
  • 方法二:显式逻辑或
weekend_df = df.loc[(df['dateRep'].dt.weekday == 5) | (df['dateRep'].dt.weekday == 6)]

关键注意点

  • 必须使用.dt访问器:它是Pandas专门用来对日期时间型Series进行元素级操作的接口,能调用weekday、year、month等日期属性。
  • 逻辑判断用|而非or:or是全局布尔判断,|是逐元素的逻辑或,符合Series的运算规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:32:37