Pandasのdataframeから重複を抽出する!duplicate、drop_duplicatesの使い方

はじめに

Pandasは、Pythonのデータ解析ライブラリの中でも特に優れた機能を持っています。その中でも、重複したデータを扱う際には、duplicatedメソッドとdrop_duplicatesメソッドが便利です。この記事では、Pandasを使ってdataframeから重複を抽出し、クレンジングする方法について解説します。

重複データの扱いとその重要性について

データ解析において、重複したデータは問題を引き起こすことがあります。重複データが存在すると、分析結果が偽りのものとなる可能性があるため、正確な分析を行うためには、重複データを取り除く必要があります。また、重複したデータは、処理時間を無駄にする原因となります。つまり、重複したデータを取り除くことは、データ解析の正確性を高め、処理時間を短縮することにつながります。

Pandasのduplicatedメソッドの基本的な使い方と実行例

duplicatedメソッドは、重複したデータを抽出するためのメソッドです。以下は、duplicatedメソッドの基本的な使い方と実行例です。

import pandas as pd
# サンプルデータの作成
data = {
    "name": ["Alice", "Bob", "Charlie", "David", "Alice"],
    "age": [25, 30, 35, 40, 25],
    "gender": ["female", "male", "male", "male", "female"]
}
df = pd.DataFrame(data)
# 重複したデータを抽出する
duplicated_data = df[df.duplicated()]
print(duplicated_data)

上記のプログラムを実行すると、以下のように重複したデータが抽出されます。

     name  age  gender
4   Alice   25  female

上記の例では、サンプルデータを作成し、その中から重複したデータを抽出しています。duplicatedメソッドを使うことで、重複したデータがどこにあるのかを簡単に抽出することができます。

duplicatedメソッドを用いた特定の列での重複データの抽出方法

次に、duplicatedメソッドを用いた特定の列での重複データの抽出方法を解説します。以下は、name列で重複したデータを抽出する例です。

# name列で重複したデータを抽出する
duplicated_data_name = df[df.duplicated(subset="name")]
print(duplicated_data_name)

上記のプログラムを実行すると、以下のようにname列で重複したデータが抽出されます。

    name  age gender
4  Alice   25 female

上記の例では、subsetパラメータを用いて、name列で重複したデータを抽出しています。subsetパラメータに列名を指定することで、その列だけで重複したデータを抽出することができます。

Pandasのdrop_duplicatesメソッドの基本的な使い方と実行例

drop_duplicatesメソッドは、重複したデータを削除するためのメソッドです。以下は、drop_duplicatesメソッドの基本的な使い方と実行例です。

# 重複したデータを削除する
unique_data = df.drop_duplicates()
print(unique_data)

上記のプログラムを実行すると、以下のように重複したデータが削除されたデータが表示されます。

      name  age  gender
0    Alice   25  female
1      Bob   30    male
2  Charlie   35    male
3    David   40    male

上記の例では、drop_duplicatesメソッドを用いて、重複したデータが削除されたデータが表示されています。drop_duplicatesメソッドを使うことで、重複したデータを簡単に削除することができます。

drop_duplicatesメソッドを用いた特定の列での重複データの削除方法

次に、drop_duplicatesメソッドを用いた特定の列での重複データの削除方法を解説します。以下は、name列で重複したデータを削除する例です。

# name列で重複したデータを削除する
unique_data_name = df.drop_duplicates(subset="name")
print(unique_data_name)

上記のプログラムを実行すると、以下のようにname列で重複したデータが削除されたデータが表示されます。

      name  age  gender
0    Alice   25  female
1      Bob   30    male
2  Charlie   35    male
3    David   40    male

上記の例では、subsetパラメータを用いて、name列で重複したデータを削除しています。subsetパラメータに列名を指定することで、その列だけで重複したデータを削除することができます。

duplicatedメソッドとdrop_duplicatesメソッドを活用したデータクレンジングの実践例

ここまでで、duplicatedメソッドとdrop_duplicatesメソッドの基本的な使い方と特定の列での使い方について解説しました。最後に、duplicatedメソッドとdrop_duplicatesメソッドを活用したデータクレンジングの実践例を紹介します。

以下は、サンプルデータから重複したデータを削除する例です。

# サンプルデータの作成
data = {
    "name": ["Alice", "Bob", "Charlie", "David", "Alice"],
    "age": [25, 30, 35, 40, 25],
    "gender": ["female", "male", "male", "male", "female"]
}
df = pd.DataFrame(data)
# 重複したデータを削除する
df = df.drop_duplicates()
# 削除後のデータを表示する
print(df)

上記のプログラムを実行すると、以下のように重複したデータが削除されたデータが表示されます。

      name  age  gender
0    Alice   25  female
1      Bob   30    male
2  Charlie   35    male
3    David   40    male

上記の例では、サンプルデータから重複したデータを削除しています。これにより、データの正確性を高め、処理時間を短縮することができます。

まとめ

Pandasのduplicatedメソッドとdrop_duplicatesメソッドを使えば、簡単に重複したデータを抽出したり、削除したりすることができます。重複データは、データ解析において正確性を損なう原因となるため、適切な対処が必要です。本記事で解説した内容を参考にして、データ解析の正確性を高め、処理時間を短縮するために、重複したデータのクレンジングを行ってください。

以上で、Pandasのdataframeから重複を抽出する方法についての解説を終わります。