首頁 >後端開發 >Python教學 >如何有效刪除 Pandas 中的連續重複項?

如何有效刪除 Pandas 中的連續重複項?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-13 17:29:02585瀏覽

How to Efficiently Drop Consecutive Duplicates in Pandas?

有效刪除 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn