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

如何用Pandas生成指定日期区间内的周一列表并排除指定日期

Pandas生成排除指定周一的日期序列并转为DataFrame

要解决生成指定区间内排除特定周一的DataFrame问题,你可以通过布尔索引+isin()方法快速过滤日期,以下是具体实现:

完整代码实现

import pandas as pd

# 设置日期区间
start_date = pd.to_datetime('8/22/2022')
end_date = pd.to_datetime('12/22/2022')

# 生成区间内所有周一的序列
all_mondays = pd.date_range(start=start_date, end=end_date, freq='W-MON')

# 定义需要排除的周一列表
exclude_dates = pd.to_datetime([
    '09/07/2022','10/12/2022','10/15/2022','10/28/2022',
    '11/01/2022','11/14/2022','11/15/2022','11/20/2022'
])

# 过滤掉需要排除的日期
filtered_mondays = all_mondays[~all_mondays.isin(exclude_dates)]

# 转换为DataFrame
result_df = pd.DataFrame({'周一日期': filtered_mondays})
print(result_df)

关键逻辑说明

  • all_mondays.isin(exclude_dates)会返回一个布尔数组,标记每个日期是否在排除列表中;
  • 前缀~是取反操作,保留不在排除列表中的日期;
  • 最后用pd.DataFrame()将过滤后的日期序列转为带列名的DataFrame。

额外说明

如果排除列表中存在不在原周一序列里的日期,isin()会自动忽略这些无效项,不会影响最终结果。

内容的提问来源于stack exchange,提问作者Reginaldo Demarque da Rocha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:55:27