ウェブサイト検索

Pythonでデータセットからの重複値を処理する


<h2>はじめに <p>Python を使用したデータセット内の重複値の処理については、この記事で説明します。重複値を定義し、Pandas DataFrame 内で重複値を特定する方法を示し、重複値の削除、最初または最後の値の維持、重複値の代替値の置換など、重複値に対処するための多くのソリューションを提供します。正しいデータ分析と機械学習モデルをサポートするために、重複値を管理する必要性が本書全体で強調されています。

データ分析や機械学習を伴うすべてのプロジェクトにおいて、データのクレンジングは重要なステップです。データセット内での重複値の発生は、データ品質に関して最も一般的な問題の 1 つです。データ分析および機械学習モデルでは、重複によりバイアスや不正確さが生じる可能性があります。このため、データセット内の重複を特定して管理することが重要です。この記事では、Python でデータセットの重複値を管理する方法について説明します。

データセットでは重複した値が頻繁に見つかり、データ分析に支障をきたす可能性があります。この投稿では、Python でのデータセットの重複値の処理について見ていきます。

重複値とは何ですか?

特性のすべてまたは一部について同じ値を持つデータセット内のデータ ポイントは、重複した値を持つと言われます。データ入力、データ収集、またはその他の状況の問題により、重複した値が表示される場合があります。

重複する値の特定

データセット内で重複を見つけることが、それらに対処するための最初のステップです。 pandas ライブラリでは、重複を検索するために多数の関数を使用できます。行が別の行の重複である場合、duplicated メソッドはそれを示すブール系列を返します。重複行は、drop Duplicates 関数を使用してデータセットから削除されます。

パンダデータフレーム内の重複値を見つける方法の図を以下に示します-

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

Pandas DataFrame 内の重複する値は、提供された Python コードを使用して検出され、出力される場合があります。コードは次のように分割されます-

  • Pandas ライブラリは、最初は pd としてインポートされます。

  • サンプル データフレームの名前、年齢、収入の 3 つの列に重複したエントリがあります。

  • DataFrame 内の重複行を見つけるには、Pandas duplicad() 関数を利用します。前の行の複製である各行に対して、プロシージャは値 True を含むブール系列を生成します。

  • 角かっこは、ブール系列の元のデータフレームにインデックスを付けるために使用されます。この場合、重複した行のみが返されます。

  • 最後のステップは、重複した行を含む DataFrame をコンソールに出力することです。

このコードの結果は、すべての列に基づいて以前の行の複製である行で構成されるデータフレームになります。

重複値の処理

重複行を見つけたら、それらに対処する必要があります。特定の使用例に応じて、重複はさまざまな方法で処理できます。ここにいくつかの典型的な方法があります-

  • 重複行を削除-これは簡単な戦略です。 DataFrame 内の重複は、drop Duplicates メソッドを使用して削除できます。

# 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
  • 最初または最後の重複値を保持する: 最初と最後の重複値の両方を保持できます。維持するオカレンスを選択するには、重複の削除メソッドで 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() メソッドはこれを示すブール系列を返します。データセットの重複行は、drop Duplicates() メソッドを使用して削除されます。重複値は、重複の削除、最初または最後のインスタンスの維持、重複値を列の平均値や中央値などの他の値に置き換えるなど、さまざまな方法で処理できます。

関連記事: