我有两个数据集: 第一个是注册过程开始的数据,第二个是注册过程结束的数据。我有用户的ID和日期。你知道吗
第一个示例(注册过程的开始):
User ID Time 1111111 2016-01-26 13:02:22 1111111 2016-01-26 14:05:51 1111111 2016-01-26 14:58:08 1111111 2016-01-27 11:17:09 1111111 2016-01-27 12:05:17 1111111 2016-01-27 13:15:33 1111111 2016-01-27 18:10:12 1111111 2016-01-27 20:23:38 222222 2016-01-29 09:01:00 222222 2016-01-29 09:04:15 222222 2016-01-29 11:27:35 222222 2016-01-30 09:02:36 222222 2016-06-29 08:50:02 333333 2016-01-26 09:58:27
第二个(注册过程结束):
User ID Time 1111111 2016-01-26 13:37:54 1111111 2016-01-26 14:40:34 1111111 2016-01-26 15:21:53 1111111 2016-01-27 11:42:58 1111111 2016-01-27 12:43:52 1111111 2016-01-27 13:39:56 1111111 2016-01-27 18:41:01 1111111 2016-01-27 20:51:56 222222 2016-01-29 09:17:26 222222 2016-01-29 11:37:10 222222 2016-01-30 09:16:33 333333 2016-01-29 09:14:39
我需要计算用户完成注册过程所需的时间。问题是,第一个数据集的行数比第二个数据集的行数多得多,因为用户可能会启动进程,然后放弃它,所以我不能在索引上进行合并。例如。: 两个开端:
222222 2016-01-29 09:01:00 222222 2016-01-29 09:04:15
只有一端:
222222 2016-01-29 09:17:26
有没有一个很好的方法来使用merge/merge\u asof函数来做这件事?你知道吗
IIUUC,您可以使用
merge_asof
。这将允许您在'User ID'
和日期的精确匹配上联接两个数据帧,然后您可以在结束数据帧(df_end
)中选择最接近的时间,即在开始数据帧(df_beg
)中的时间之后merged
现在是:如果需要按照注释中的指示计算平均时间,那么由于
timedelta64
数据类型的原因,您需要跳过一些限制。你知道吗相关问题 更多 >
编程相关推荐