有效刪除 Pandas 中的連續重複項
使用 pandas DataFrame 時,通常需要刪除重複值。然而,內建的 drop_duplicates() 方法會刪除重複值的所有實例,包括連續的重複項。對於只需要刪除連續重複項的情況,有更有效的方法可用。
一種方法涉及使用 shift() 函數。透過將 DataFrame 與其移位版本 (a.shift(-1)) 進行比較,可以建立一個布林遮罩來識別連續重複發生的位置。然後,可以使用此遮罩僅選擇唯一值,如下例所示:
a.loc[a.shift(-1) != a]
另一種方法利用 diff() 函數。它計算行之間的差異,可用於識別連續的重複項。然而,對於大型資料集,它比shift()方法慢。
使用:
a.loc[a.diff() != 0]
原始答案建議使用shift(),週期為-1,但正確的用法是shift(1)(或簡稱為shift()),因為默認的移位週期為1。此修改確保只有第一個連續值是回傳:
a.loc[a.shift(1) != a]
shift() 和diff() 方法都提供了刪除Pandas 中連續重複項的有效方法,應根據具體上下文和效能要求進行考慮。
以上是如何有效刪除 Pandas 中的連續重複項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!