如何根據Pandas 中的索引刪除重複行
在資料分析中,經常需要識別並刪除資料中的重複行資料集。使用 Pandas(一種用於資料操作的流行 Python 庫)時,您可能會遇到多行共享相同索引值的情況。此問題可能是由於資料輸入錯誤或意外重複等原因引起的。
重複行範例
考慮以下天氣DataFrame,它表示每小時進行的觀測間隔:
Sta Precip1hr Precip5min Temp DewPnt WindSpd WindDir AtmPress Date 2001-01-01 00:00:00 KPDX 0 0 4 3 0 0 30.31 2001-01-01 00:05:00 KPDX 0 0 4 3 0 0 30.30 2001-01-01 00:10:00 KPDX 0 0 4 3 4 80 30.30 2001-01-01 00:15:00 KPDX 0 0 3 2 5 90 30.30 2001-01-01 00:20:00 KPDX 0 0 3 2 10 110 30.28
在此DataFrame 中,請注意「2001-01-01 00:00:00」的觀察結果在DataFrame 的末尾重複。要清理數據,必須刪除這些重複的行。
使用重複的方法
Pandas 提供了一種稱為 duplicd 的有效方法來識別和選擇重複的行。此方法考慮基於 DataFrame 中所有列的重複行。透過傳遞 keep 參數,您可以指定是否保留每個重複組的第一次出現或最後一次出現。
在這種情況下,我們希望根據索引保留每個重複組的第一次出現:
df3 = df3[~df3.index.duplicated(keep='first')]
這種方法利用了Pandas Index 物件的重複方法,該方法直接對DataFrame 的索引進行操作。透過使用 ~ 否定結果,我們選擇未標記為重複的行。指定 keep='first' 確保我們保留每個重複索引組的第一個實例。
效能注意事項
需要注意的是,不同方法的效能刪除重複行的方法因資料和特定條件而異。基準測試顯示,對於給定範例,duplicated 方法的效能最高,其次是 groupby 方法和 reset_index().drop_duplicates()。
以上是如何根據 Pandas 中的索引刪除重複行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!