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

Python如何判断DataFrame日期列是否为每月第二个周一并返回布尔值

解决方案

完整代码

import pandas as pd

# 你之前读取csv的代码保留即可,示例:
# df = pd.read_csv("你的文件路径.csv")

# 1. 将字符串格式的Date列转换为可计算的datetime格式
df['Date'] = pd.to_datetime(df['Date'], format='%Y/%m/%d')

# 2. 生成Date Check列,判断是否为当月第二个周一
df['Date Check'] = df['Date'].apply(lambda x: (x.weekday() == 0) & (7 < x.day <= 14))

# 如果你需要返回字符串格式的'True'/'False',可额外执行下面这行
# df['Date Check'] = df['Date Check'].astype(str)

代码说明

  • pd.to_datetime():把从csv读取到的字符串类型日期(比如2019/01/01)转换为日期格式,参数format='%Y/%m/%d'对应你日期的结构:%Y代表4位年份,%m代表2位月份,%d代表2位日期,中间用/分隔。
  • weekday():日期对象的内置方法,返回0-6的整数对应周一到周日,0=周一、1=周二,以此类推,所以x.weekday() == 0可以筛选出所有周一的日期。
  • 7 < x.day <=14:每个月的第一个周一最晚出现在7号,第二个周一必然落在8号到14号的区间内,两个条件同时满足就是当月第二个周一。
  • apply():把判断逻辑遍历应用到Date列的每一行,返回的布尔值直接存入新列即可。

验证提示

你可以随机抽取几个结果手动核对,比如2024年3月的第二个周一是3月11日,代入逻辑:weekday返回0,日期11满足7<11<=14,返回True,符合预期。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:18:03