Python中为DataFrame新增当前周上周日日期列的实现咨询
实现方案
依赖库
pandas:用于DataFrame结构处理datetime:用于日期计算与格式转换
核心逻辑
- 自动获取代码运行当日的系统日期
- 按规则计算目标上周日日期:利用
datetime对象的weekday()方法(返回值规则为周一为0,周日为6),如果当日是周日则直接取当日,否则向前偏移weekday() + 1天得到上周日日期 - 将计算得到的日期转为
MM/DD/YYYY格式后,统一赋值给DataFrame的新增列即可,所有行该列值一致
完整可运行代码
import pandas as pd from datetime import datetime, timedelta # 构造示例DataFrame,实际使用时替换为你的数据源即可 df = pd.DataFrame({ 'ID': [1, 2, 3], 'Process': ['Manual', 'Semi', 'Automatic'] }) # 获取代码运行当日日期 today = datetime.today() # 计算符合规则的上周日日期 if today.weekday() == 6: last_sunday = today else: last_sunday = today - timedelta(days=today.weekday() + 1) # 转换为指定日期格式 last_sunday_str = last_sunday.strftime('%m/%d/%Y') # 给DataFrame新增列 df['Last Sunday'] = last_sunday_str # 输出结果验证 print(df)
效果验证
如果在2021年8月27日运行代码,计算得到的日期值为08/22/2021,最终输出的DataFrame与预期完全一致,且每次运行都会自动基于当日日期动态计算对应上周日的值,无需手动修改。
内容的提问来源于stack exchange,提问作者mightyknows
相关产品推荐
相关产品推荐

