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

Pandas转换PurchaseDate为datetime后计算Recency报AttributeError求助

解决Recency计算的AttributeError问题

错误核心原因:data['PurchaseDate'].dt.date返回的是Python原生date对象组成的数组(pandas中为object类型),并非pandas的datetime64类型序列,因此无法使用.dt访问器。

推荐高效解决方案

直接用pandas时间戳对象计算,避免转换为Python原生date:

import pandas as pd
from datetime import datetime

# 确保PurchaseDate转为datetime64类型,无效日期自动转为NaT
data['PurchaseDate'] = pd.to_datetime(data['PurchaseDate'], errors='coerce')

# 计算Recency:pandas时间戳相减得到Timedelta序列,再提取天数
data['Recency'] = (pd.Timestamp.now() - data['PurchaseDate']).dt.days

小数据集备选方案

若需基于Python date对象计算,可使用apply(大数据集效率较低):

data['Recency'] = data['PurchaseDate'].dt.date.apply(lambda x: (datetime.now().date() - x).days if pd.notna(x) else None)

额外检查步骤

转换后确认是否存在无效日期导致的缺失值:

# 查看缺失日期的数量
print(data['PurchaseDate'].isna().sum())

缺失值对应的Recency会显示为NaN,可根据业务需求选择填充(如中位数)或删除对应行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:29:55