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

如何过滤移除dataframe中距系统运行日期不足90天的行

解决方案

针对50万行级别的DataFrame,优先使用pandas向量化操作实现需求,执行效率远高于逐行遍历的实现方式。

前置依赖

需要导入的库:

import pandas as pd
from datetime import datetime

完整实现步骤

  • 第一步:日期列格式转换,样例中的日期为日/月/年格式,明确指定解析格式既可以避免pandas自动识别出错,也能提升转换效率
# 假设你的原始DataFrame变量名为df,日期列列名和样例一致为`Date.`
df['Date.'] = pd.to_datetime(df['Date.'], format='%d/%m/%y')
  • 第二步:过滤符合要求的行,仅保留日期距离当前系统时间大于等于90天的行
# 获取代码运行时的系统时间
current_time = datetime.now()
# 计算时间差过滤数据
df_filtered = df[ (current_time - df['Date.']).dt.days >= 90 ]

低内存优化方案

如果需要直接修改原DataFrame降低内存占用,可以使用如下写法:

current_time = datetime.now()
# 先定位需要删除的行索引
drop_index = df[ (current_time - df['Date.']).dt.days < 90 ].index
df.drop(drop_index, inplace=True)

效果验证

以你提供的样例数据为例:

NameDate.
Tom16/07/20
Dave10/04/21

如果代码运行时间为2021年5月1日,Dave的日期距离当前时间仅21天,会被直接删除,最终仅保留Tom对应的行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:54:09