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

Pandas筛选start_time晚于指定天数行时出现Series无date属性错误如何解决

问题原因

你调用.date()的对象是old_df.start_time,这是pandas的Series序列对象,只有单个Python datetime类型的对象才支持.date()方法,序列类的时间数据需要通过pandas提供的.dt访问器调用时间处理方法。

正确实现代码

写法1:按你原逻辑修改

首先先确保start_time列已经是pandas datetime类型,之后用.dt.date批量获取整列的日期值:

# 可选:如果start_time不是datetime格式先执行转换
old_df['start_time'] = pd.to_datetime(old_df['start_time'])

df_removed = old_df[(current_date - old_df.start_time.dt.date).dt.days <= days_range_to_retain]

写法2:更高效的优化写法

不需要逐行计算日期差值,直接算出保留的时间阈值后做大小比较即可,性能更高:

# 计算最早需要保留的时间阈值
cutoff_time = pd.Timestamp(current_date) - pd.Timedelta(days=days_range_to_retain)
df_removed = old_df[old_df.start_time >= cutoff_time]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:27:00