如何使用Python Pandas庫檢測重複標籤?


Pandas 用於處理大型資料集,在這些大型資料表中,列和行都用一些名稱進行索引,這些名稱稱為標籤。當我們處理資料集時,資料集中可能存在一些重複的標籤。

重複可能會導致對資料的錯誤結論,它可能會影響我們期望的輸出。這裡我們討論的是標籤重複,也就是行和列索引名稱重複超過 1 次的情況。

讓我們來看一個例子,來識別 DataFrame 中的重複標籤。

識別列標籤中的重複項

示例

df1 = pd.DataFrame([[6, 1, 2, 7], [8, 4, 5,9]], columns=["A", "A", "B","C"])
print(df1)
print(df1.columns.is_unique)

解釋

建立了一個形狀為 2X4 的 DataFrame。為了驗證列中是否存在任何重複的標籤,這裡我們使用 DataFrame.columns.is_unique。這將根據重複項的存在返回一個布林值 True 或 False。

輸出

    A   A   B   C
0   6   1   2   7
1   8   4   5   9
False

此輸出塊表示 DataFrame df,布林值 False 表示 DataFrame df 的列中存在重複標籤。

透過使用 duplicated 方法,我們還可以獲得 DataFrame 中的重複標籤。如下所示。

df1.columns[~df1.columns.duplicated()]

df1.columns 只將列名作為陣列,duplicated() 方法提供一個布林值陣列,表示重複項。使用上述程式碼,我們可以獲得列標籤的唯一列表。

Index(['A', 'B', 'C'], dtype='object')

識別索引標籤中的重複項

與識別列標籤中的重複項的過程相同,我們也可以識別索引(行)中的重複項。

示例

f = pd.DataFrame({"A": [0, 1, 2, 3, 4]}, index=["x", "y", "x", "y","z"])
print(f)
print()
print(f.index.duplicated()) # getting boolean string
unique_f = f[~f.index.duplicated()] # filtering duplicates
print()
print(unique_f) # removed duplicated data

解釋

DataFrame “f” 在索引中建立了一些重複資料。我們可以使用 f.index.duplicated() 來識別重複項,它將返回一個布林值列表,表示重複的索引。使用此 duplicated 方法,我們可以從 DataFrame “f” 中刪除重複標籤。

輸出

   A
x   0
y   1
x   2
y   3
z   4

[False False True True False]

   A
x   0
y   1
z   4

第一個塊是包含重複值的 DataFrame “f”,布林值陣列表示重複項。最後一個塊表示 DataFrame “f” 中唯一的索引標籤。

更新於:2021年11月18日

542 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.