首頁 >後端開發 >Python教學 >如何根據 Pandas 中的索引刪除重複行?

如何根據 Pandas 中的索引刪除重複行?

Barbara Streisand
Barbara Streisand原創
2024-11-13 05:13:02258瀏覽

How to Remove Duplicate Rows Based on Indices in Pandas?

如何根據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中文網其他相關文章!

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