繁体   English   中英

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

[英]unsupported operand type(s) for -: 'datetime.datetime' and 'datetime.date'

我试图创建一个 RFM Model 并且我试图通过减去购买日期和给定的日期期间来获得增量值(天)。 编码:

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.date'

latest_datedatetime时间 object,但您要减去date object x.max()

您可以轻松地将日期转换为日期时间,如下所示:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM