Python 中處理資料集中的重複值


簡介

本文介紹瞭如何使用 Python 處理資料集中的重複值。它定義了重複值,展示瞭如何在 Pandas DataFrame 中識別它們,並提供了多種處理重複值的方法,包括刪除重複項、保留第一次或最後一次出現以及用替代值替換重複項。本文強調了管理重複值的重要性,以支援準確的資料分析和機器學習模型。

在每個涉及資料分析或機器學習的專案中,資料清洗都是一個至關重要的步驟。資料集出現重複值是資料質量最常見的問題之一。在資料分析和機器學習模型中,重複項可能導致偏差和不準確性。因此,識別和管理資料集中的重複項至關重要。在本文中,我們將學習如何在 Python 中處理資料集中的重複值。

資料集中的重複值很常見,並且可能干擾資料分析。在本篇文章中,我們將探討如何使用 Python 處理資料集中的重複值。

什麼是重複值?

資料集中的資料點,如果在所有或部分特徵中具有相同的值,則被認為具有重複值。重複值可能是由於資料輸入、資料收集或其他情況等問題而產生的。

識別重複值

處理重複值的步驟第一步是找到資料集中的重複項。Pandas 庫中提供了許多函式來查詢重複項。duplicated 方法返回一個布林型 Series,指示哪一行是另一行的重複項。drop_duplicates 函式用於從資料集中刪除重複行。

下面是一個如何在 Pandas DataFrame 中識別重複值的示例:

示例

import pandas as pd

# Create a sample DataFrame with duplicate values
data = pd.DataFrame({
   'name': ['John', 'Emily', 'John', 'Jane', 'John'],
   'age': [25, 28, 25, 30, 25],
   'salary': [50000, 60000, 50000, 70000, 50000]
})

# Identify duplicate rows
duplicates = data.duplicated()

# Print the duplicate rows
print(data[duplicates])

輸出

   name  age  salary
2  John   25   50000
4  John   25   50000

提供的 Python 程式碼可以找到並列印 Pandas DataFrame 中的重複值。程式碼的分解如下:

  • 首先,將 Pandas 庫匯入為 pd。

  • 一個示例 DataFrame,其中三列“姓名”、“年齡”和“收入”存在重複項。

  • 使用 Pandas 的 duplicated() 函式查詢 DataFrame 中的重複行。此函式會為每一行生成一個布林型 Series,如果該行是先前行的重複項,則值為 True。

  • 使用方括號在布林型 Series 中索引原始 DataFrame。在本例中,只返回重複行。

  • 最後一步是將包含重複行的 DataFrame 列印到控制檯。

此程式碼將生成一個 DataFrame,其中包含基於所有列的先前行的重複行。

處理重複值

找到重複行後,我們需要處理它們。處理重複項的方法有很多,具體取決於特定的用例。以下是一些常見的方法:

  • 刪除重複行 - 這是一種簡單的方法。可以使用 drop_duplicates 方法刪除 DataFrame 中的重複項。

示例

# Drop duplicate rows
data = data.drop_duplicates()

# Print the updated DataFrame
print(data)

輸出

    name  age  salary
0   John   25   50000
1  Emily   28   60000
3   Jane   30   70000
  • 保留第一個或最後一個重複項:可以保留第一個或最後一個重複值。可以使用 drop_duplicates 方法中的 keep 引數來選擇要保留的出現次數。

示例

# Keep the first occurrence of the duplicates
data = data.drop_duplicates(keep='first')

# Print the updated DataFrame
print(data)

輸出

    name  age  salary
0   John   25   50000
1  Emily   28   60000
3   Jane   30   70000
  • 替換重複值:我們可以用替代值替換重複值,例如該列的平均值或中位數。我們可以使用 groupby 函式對資料進行分組,並獲取平均值或中位數。

示例

# Replace duplicate values with the median of the column
data['salary'] = data.groupby('name')['salary'].transform('median')

# Print the updated DataFrame
print(data)

輸出

    name  age  salary
0   John   25   50000
1  Emily   28   60000
3   Jane   30   70000

結論

總之,管理資料集中的重複值對於確保準確的資料分析和機器學習模型至關重要。Python Pandas 庫中提供了函式來查詢和管理資料集中的重複項。duplicated() 方法返回一個布林型 Series,指示哪一行是另一行的重複項。drop_duplicates() 方法用於刪除資料集中的重複行。可以採用多種方法處理重複值,包括刪除重複項、保留第一個或最後一個出現以及用其他值(例如該列的平均值或中位數)替換重複值。

更新於: 2023年3月10日

5K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告