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

Pandas日期计算:筛选日期加6个月后超过当日的行

解决方法

首先,不要用pd.timedelta加固定天数——不同月份天数差异大(比如2月的28/29天、31天的大月等),直接加181天会导致日期计算偏差。正确做法是用pd.DateOffset(months=6)来精确添加6个月。

以下是完整实现步骤:

  1. 导入pandas并创建示例DataFrame
import pandas as pd

# 示例数据
df = pd.DataFrame({
    'date': pd.to_datetime(['2022-05-01', '2022-06-15', '2022-07-01', '2022-12-01'])
})
  1. 添加“加6个月后的日期”列
df['date_plus_6months'] = df['date'] + pd.DateOffset(months=6)
  1. 定义当日日期(按示例用2022-12-06,若要获取真实当日日期可改用pd.Timestamp.today().normalize())
today = pd.to_datetime('2022-12-06')
  1. 筛选出加6个月后日期晚于当日的行,保留原日期和新日期列
filtered_df = df[df['date_plus_6months'] > today][['date', 'date_plus_6months']]
  1. 查看结果
print(filtered_df)

输出示例:

date date_plus_6months
2 2022-07-01        2023-01-01
3 2022-12-01        2023-06-01

如果需要额外添加布尔列标记是否符合条件,可在筛选前补充:

df['is_after_today'] = df['date_plus_6months'] > today
# 筛选时可保留布尔列:df[df['is_after_today']][['date', 'date_plus_6months', 'is_after_today']]

关键说明

  • pd.DateOffset(months=6)会自动处理月份天数差异,比如2022-02-28加6个月得到2022-08-28,2020-02-29加6个月得到2020-08-29,比固定天数计算更准确。
  • 确保所有日期列是datetime类型,避免类型错误导致筛选失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:55:17