有没有一种方法可以在特定时间段内在python中汇总订单?

时间:2019-04-08 12:21:38

标签: python pandas time grouping aggregate

在使用python方面我是一个相当新的人。 有一个带有特定时间标记的订单表。但是,“正确”订单被拆分为许多行,因为订单可能在不同的时间处理,因此具有不同的订单ID。

最终目标是根据特定的时间跨度来识别或汇总订单级别的数据,即:只要来自一个用户的以下order_id位于距该用户的第一订单一小时以内,则数据应该是确定为真正的“一个订单”。

到目前为止,我尝试每小时进行一次汇总,并使用user_id和incoming_date_time_s构建了一个密钥,但是它的精确度还不够理想

df_1["incoming_date_time_s"] = df_1["incoming_date_time"].apply(lambda x: datetime.datetime(x.year, x.month, x.day, x.hour))

这是感兴趣的数据框

import pandas as pd
import datetime

df_1 = pd.DataFrame({'user_id':['01', '02', '03', '03', '01', '01',  '03', '01', '03', '01'],
'incoming_date_time':['2018-10-31 00:01:56', '2018-10-31 00:03:04', '2018-10-31 00:03:32', '2018-10-31 00:03:38','2018-10-31 00:03:40', '2018-10-31 00:03:53', '2018-10-31 00:03:48', '2018-10-31 00:04:04', '2018-10-31 00:05:20', '2018-10-31 00:05:31'], 
'order_id':[123, 124, 125, 126, 127, 128, 129, 131, 132, 132], 
'Supposed_counting_result':[1, 1, 1, 1, 2, 2, 1, 2, 2, 3]})

df_1['incoming_date_time'] = pd.to_datetime(df_1['incoming_date_time'])

您可能会看到预期的汇总结果应类似于“ Supposed_counting_result”中的内容。 有合理的方法执行此聚合吗? 谢谢你的想法。

0 个答案:

没有答案