在 Pandas 中刪除重複的列

Preet Sanghavi 2023年1月30日
  1. 在 Pandas 中刪除重複的列
  2. 使用 drop_duplicates() 函式刪除 Pandas 中的重複列
在 Pandas 中刪除重複的列

本教程探討了從 Pandas DataFrame 中刪除重複列的概念。

在 Pandas 中刪除重複的列

在本教程中,讓我們瞭解如何以及為什麼在 Pandas DataFrame 中刪除相同或相似的列。大多數企業和組織都需要消除這些重複的列,因為它們可能對從中收集見解並不重要。

此外,當我們需要向資料庫新增一些其他資料時,它們會使資料庫變得混亂並在儲存空間中產生問題。最後,重複的列也可能會影響某些統計或機器學習模型,因為資料可能會出現偏差,並會導致模型準確性非常低。

讓我們看看如何在行動中完成此操作。

但是,在開始之前,我們會建立一個虛擬 DataFrame 來使用。在這裡,我們建立了兩個 DataFrame,即 dat1dat2,以及一些條目。

import pandas as pd

dat1 = pd.DataFrame({"dat1": [9, 5]})

上面的程式碼建立了一個 DataFrame 和一些條目,即 95。要檢視資料中的條目,我們使用以下程式碼。

print(dat1)

上面的程式碼給出了以下輸出。

   dat1
0     9
1     5

如圖所示,我們有 2 列和 2 行,其中一列表示索引,第二列表示 DataFrame 中的值。現在,讓我們使用以下程式碼建立另一個名為 dat2 的 DataFrame。

dat2 = pd.DataFrame({"dat2": [9, 5]})

正如我們對 dat1 所做的那樣,我們可以使用以下程式碼視覺化這個 dat2DataFrame。

print(dat2)

該程式碼給出了以下 DataFrame。

   dat2
0     9
1     5

正如我們對 dat1 所做的那樣,我們有 2 行和 2 列,其中一個表示索引,第二個表示 DataFrame 中的值。

現在,讓我們將 dat2 DataFrame 的列合併到 dat1DataFrame。我們可以使用下面的程式碼來做到這一點。

val = pd.concat([dat1, dat2], axis=1)

如圖所示,我們在 Pandas 中使用了 concat 函式。此函式使用作為陣列傳遞的單個引數將多個 DataFrame 合併或連線成一個,併合並所有 DataFrame。

我們還需要指定新增 DataFrame 的軸,以根據列或行來更改 DataFrame。

從程式碼中可以明顯看出,我們使用值為 1axis 引數。它可以幫助將列新增到第一個引數中分配的陣列的 DataFrame 中。

程式碼的輸出如下。

   dat1  dat2
0     9     9
1     5     5

如圖所示,DataFrame dat1 已被更改,因此在第一軸上新增了一個附加列。

同樣,此輸出使用 print(val) 程式碼進行視覺化。我們有一個 DataFrame,其中包含名為 dat1dat2 的兩列具有相同的值。

特別是,我們使用 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 中可能存在的任何重複列。

為了更好地理解這個概念,你可以瞭解以下主題。

  1. Pandas 中的 Concat 函式。
  2. Pandas 中的 Drop Duplicates 函式。
作者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

相關文章 - Pandas Column