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