【发布时间】:2022-01-08 00:59:57
【问题描述】:
现在,我必须只过滤前一周日期的数据(不包括周六、周日)
我编写了这段 Python 代码-
today = date.today() - timedelta(weeks = 1)
weekday = today.weekday()
prev_week_start = today - timedelta(days = weekday)
for i in range(0,5):
prev_weekdate = today - timedelta(days = i)
prev_weekend = prev__weekdate + timedelta(days = 4)
next_weekstart = prev_weekdate + timedelta(days = 14)
next_weekdateend = next_weekstart + timedelta(days = 4)
week_dates = pd.DataFrame({"LastWeekStartDate":pd.to_datetime(['prev_weekdate']),
"LastWeekEndDate":pd.to_datetime(['prev_weekend']),
"NextWeekStartDate":pd.to_datetime(['next_weekstart']),
"NextWeekEndDate":pd.to_datetime(['next_weekdateend'])})
week_dates.head()
我使用这些公式获得了所有上一周和下周开始和结束日期的正确日期。
然后我编写了以下代码来获取我的数据并使用上述数据框 - week_dates 过滤前一周的数据
df = pd.read_csv()
df['Date'] = pd.to_datetime(df.Date)
现在过滤我的数据框的行 - df ,我写了 -
df = df[(df['Date'] >= week_dates.LastWeekStartDate & df['Date'] <= week_dates.LastWeekEndDate)][["Date","Actual Call Volume","Forecasted Call Volume"]]
我收到一个错误 -
TypeError: &:'DatetimeArray' 和不支持的操作数类型 '日期时间数组'
请有人告诉我哪里出错了,或者有没有其他方法可以编写此代码。提前致谢!
【问题讨论】:
标签: python pandas dataframe filtering