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

如何从含日期列的文件中动态筛选早于当前日期减2年的所有日期

动态筛选2年以上历史日期的实现方案

以下提供3种常用场景下的实现方法:

Excel 实现方案

  • 动态基准日期核心公式:=EDATE(TODAY(),-24),该值会随系统当前日期自动更新,无需手动修改
  • 操作步骤:
    1. 在日期列旁新增空白列,表头命名为是否符合筛选条件
    2. 第二行输入公式:=A2<EDATE(TODAY(),-24),将A2替换为你日期列的第一个数据单元格
    3. 下拉公式填充所有行,返回TRUE的即为符合要求的行
    4. 对新增列筛选TRUE值即可导出目标结果

注意:如果日期列是文本格式,需要先右键设置单元格格式为日期类型,否则公式会计算错误

Python Pandas 实现方案

  • 先计算动态基准日期:
import pandas as pd
from datetime import datetime
# 需处理闰年的话可以用dateutil库更精准
from dateutil.relativedelta import relativedelta

two_years_ago = datetime.today() - relativedelta(years=2)
  • 读取文件并筛选:
# 支持csv、excel等常见格式
df = pd.read_csv("你的文件路径.csv")
# 转换日期列为时间类型
df["日期列名"] = pd.to_datetime(df["日期列名"])
# 筛选符合条件的行
result_df = df[df["日期列名"] < two_years_ago]
# 导出结果
result_df.to_csv("筛选结果.csv", index=False)

Linux Shell 实现方案(处理csv场景)

  • 用系统date命令生成动态基准,结合awk快速筛选:
# 生成YYYY-MM-DD格式的2年前基准日期
benchmark=$(date -d "2 years ago" +%Y-%m-%d)
# 假设日期在csv第3列,保留表头筛选符合条件的行
awk -F ',' -v bench="$benchmark" 'NR==1 || $3 < bench' 源文件.csv > 筛选结果.csv

注意:如果你的日期格式不是YYYY-MM-DD,需要先统一格式再做比较,避免字符串顺序比较出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:09:03