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

如何从DataFrame日期索引中提取每年7月的最后一个工作日?

提取DataFrame日期索引中每年7月的最后一个工作日

以下是针对不同场景的实现方案,逻辑简洁且覆盖你提到的所有情况:

核心思路

  1. 先筛选出索引中所有7月的日期;
  2. 按年份分组,每组取最大日期(即该年7月在序列中存在的最后一个工作日);
  3. 自动跳过无7月日期的年份,仅保留有数据的年份结果。

代码实现

假设你的DataFrame名为df,且索引是datetime类型:

import pandas as pd

# 确保索引是datetime类型(如果还不是的话)
df.index = pd.to_datetime(df.index)

# 先对索引排序,确保取到的是最后一个日期(可选,但推荐)
df = df.sort_index()

# 筛选7月的日期
july_indices = df.index[df.index.month == 7]

# 按年份分组,提取每组的最大日期
last_july_workdays = july_indices.groupby(july_indices.year).max()

场景验证

  • 覆盖2017-2022且每年7月有数据:分组后会得到6个年份对应的最后一个7月工作日;
  • 某年份无7月数据(如2021年):该年份会被自动排除,结果仅包含5个日期;
  • 仅含2021年7月1日:分组后仅返回该日期。

补充说明

如果你的日期序列中包含非工作日(但你只需要工作日),可以先过滤掉非工作日再执行上述步骤:

# 先筛选工作日(周一至周五)
workday_indices = df.index[df.index.weekday < 5]
# 再筛选7月的工作日
july_workdays = workday_indices[workday_indices.month == 7]
# 分组取最大日期
last_july_workdays = july_workdays.groupby(july_workdays.year).max()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 12:17:10