不支持的操作数类型 -: 'datetime.datetime' 和 'datetime.date'



我试图创建一个RFM模型,我试图通过减去购买日期和给定的日期段来获得delta值(天(。代码:

latest_date = dt.datetime(2022,6,30)
RFMScore = df.groupby('user_id').agg({'created_at': lambda x: (latest_date - x.max()).days, 'order_id': lambda x: len(x), 'total': lambda x: x.sum()})
RFMScore['created_at'] = RFMScore['created_at'].astype(int)
RFMScore.rename(columns={'created_at': 'Recency', 
'order_id': 'Frequency', 
'total': 'Monetary'}, inplace=True)
RFMScore.reset_index().head()
return df

该代码返回-:'datetime.datetime'和'datetime.deate'的操作数类型不受支持

latest_datedatetime对象,但您正在减去date对象x.max()

您可以很容易地将日期转换为日期时间,如下所示:

d = x.max()
latest_date - datetime.datetime(d.year, d.month, d.day)

相关内容

最新更新