1
給定一個正龍i
和數據幀[PY]星火SQL:多列sessionization
+-----+--+--+
|group|n1|n2|
+-----+--+--+
| 1| 0| 0|
| 1| 1| 1|
| 1| 1| 5|
| 1| 2| 2|
| 1| 2| 6|
| 1| 3| 3|
| 1| 3| 7|
| 1| 4| 4|
| 1| 5| 1|
| 1| 5| 5|
+-----+--+--+
你會如何sessionize排在同group
使得對於每對連續行r1
,r2
中的會議r2.n1
>r1.n1
,r2.n2
>r1.n2
,和max(r2.n1
- r1.n1
,r2.n2
- r1.n2
)< i
?請注意,n1
和n2
值可能不是唯一的,這意味着構成會話的行在DataFrame中可能不連續。
作爲示例,對於給定的數據幀和i
= 3的結果將是
+-----+--+--+-------+
|group|n1|n2|session|
+-----+--+--+-------+
| 1| 0| 0| 1|
| 1| 1| 1| 1|
| 1| 1| 5| 2|
| 1| 2| 2| 1|
| 1| 2| 6| 2|
| 1| 3| 3| 1|
| 1| 3| 7| 2|
| 1| 4| 4| 1|
| 1| 5| 1| 3|
| 1| 5| 5| 1|
+-----+--+--+-------+
任何幫助或暗示將不勝感激。謝謝!
謝謝你,@Marie。找到連接的組件的伎倆!不幸的是,性能很糟糕 - 花了一分多時才找到我提供的例子的解決方案!你知道這可能是爲什麼嗎? – alan
它迭代次數與最大分支長度一樣多。你可以嘗試調整你的圖表,使其運行速度更快。 – MaFF
感謝您的建議。不幸的是,即使使用圖形調整,糟糕的運行時間性能也會影響我的生產數據集。 – alan