pandas:根据行间差值进行数据合并


1. 问题描述

 在处理用户上网数据时,用户的上网行为数据之间存在时间间隔,按照实际情况,若时间间隔小于阈值(next_access_time_app),则可把这几条上网行为合并为一条行为数据;若时间间隔大于阈值(next_access_time_app),则可把这几条上网行为分别认为是独立无关的行为数据。 具体可结合下图理解:

因此需求是有二:一是根据阈值(next_access_time_app)决定是否需要对数据进行合并;二是对数据合并时字段值的处理。其中第二点较为简单,不做表述,重点关注第一点。

深入思考,其实这个问题的关键是对数据索引进行切片,并保证切出来的索引能被正确区分。

因此,此问题可以抽象为:如何从一个列表中找出连续的数字组合?

 

2. 解决办法

t1 = []
t2 = []
for idx in continuous_action_index:
    t1.append(idx)
    if idx + 1 not in continuous_action_index:
        t1.append(idx + 1)
        t2.append([t1[0], t1[-1]])
        t1 = []

 

3. 总结

在遇到问题时,能否快速定位到问题的本质,进而采取相应的办法去解决,本身就是对解决问题能力的一种衡量。

之前刷过一些Leetcode试题,之所以会觉得和实际业务无法有效结合,其实是因为自己遇到的问题太少而产生的幼稚想法。

总之,以后在工作中需要多多进行知识的串联,这样才能把能力做到最大化提升。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM