在 Pandas 中刪除重複的列
本教程探討了從 Pandas DataFrame 中刪除重複列的概念。
在 Pandas 中刪除重複的列
在本教程中,讓我們瞭解如何以及為什麼在 Pandas DataFrame 中刪除相同或相似的列。大多數企業和組織都需要消除這些重複的列,因為它們可能對從中收集見解並不重要。
此外,當我們需要向資料庫新增一些其他資料時,它們會使資料庫變得混亂並在儲存空間中產生問題。最後,重複的列也可能會影響某些統計或機器學習模型,因為資料可能會出現偏差,並會導致模型準確性非常低。
讓我們看看如何在行動中完成此操作。
但是,在開始之前,我們會建立一個虛擬 DataFrame 來使用。在這裡,我們建立了兩個 DataFrame,即 dat1
和 dat2
,以及一些條目。
import pandas as pd
dat1 = pd.DataFrame({"dat1": [9, 5]})
上面的程式碼建立了一個 DataFrame 和一些條目,即 9
和 5
。要檢視資料中的條目,我們使用以下程式碼。
print(dat1)
上面的程式碼給出了以下輸出。
dat1
0 9
1 5
如圖所示,我們有 2 列和 2 行,其中一列表示索引,第二列表示 DataFrame 中的值。現在,讓我們使用以下程式碼建立另一個名為 dat2
的 DataFrame。
dat2 = pd.DataFrame({"dat2": [9, 5]})
正如我們對 dat1
所做的那樣,我們可以使用以下程式碼視覺化這個 dat2
DataFrame。
print(dat2)
該程式碼給出了以下 DataFrame。
dat2
0 9
1 5
正如我們對 dat1
所做的那樣,我們有 2 行和 2 列,其中一個表示索引,第二個表示 DataFrame 中的值。
現在,讓我們將 dat2
DataFrame 的列合併到 dat1
DataFrame。我們可以使用下面的程式碼來做到這一點。
val = pd.concat([dat1, dat2], axis=1)
如圖所示,我們在 Pandas 中使用了 concat
函式。此函式使用作為陣列傳遞的單個引數將多個 DataFrame 合併或連線成一個,併合並所有 DataFrame。
我們還需要指定新增 DataFrame 的軸,以根據列或行來更改 DataFrame。
從程式碼中可以明顯看出,我們使用值為 1
的 axis
引數。它可以幫助將列新增到第一個引數中分配的陣列的 DataFrame 中。
程式碼的輸出如下。
dat1 dat2
0 9 9
1 5 5
如圖所示,DataFrame dat1
已被更改,因此在第一軸上新增了一個附加列。
同樣,此輸出使用 print(val)
程式碼進行視覺化。我們有一個 DataFrame,其中包含名為 dat1
和 dat2
的兩列具有相同的值。
特別是,我們使用 Pandas 中的 join
函式在 dat1
DataFrame 中新增了一個新行。
使用 drop_duplicates()
函式刪除 Pandas 中的重複列
現在讓我們從 DataFrame 中消除重複的列。我們可以使用以下程式碼執行此操作。
print(val.reset_index().T.drop_duplicates().T)
這有助於我們輕鬆地重置索引並從 DataFrame 中刪除重複的列。程式碼的輸出如下。
index dat1
0 0 9
1 1 5
如圖所示,我們已經成功地從我們的 DataFrame 中消除了名為 dat2
的重複列。同樣重要的是要注意,我們已經為 val
DataFrame 重置了索引,這可能有助於分析師重新配置他們的資料點並收集更好的見解。
因此,我們使用 concat
函式和 drop_duplicates()
函式消除了 DataFrame 中可能存在的任何重複列。
為了更好地理解這個概念,你可以瞭解以下主題。
- Pandas 中的
Concat
函式。 - Pandas 中的
Drop Duplicates
函式。