Pandas dataframe で重複を見つける方法 (例あり)
duplicad()関数を使用すると、pandas DataFrame で重複する値を見つけることができます。
この関数は次の基本構文を使用します。
#find duplicate rows across all columns duplicateRows = df[df. duplicated ()] #find duplicate rows across specific columns duplicateRows = df[df. duplicated ([' col1 ',' col2 '])]
次の例は、実際に次の pandas DataFrame でこの関数を使用する方法を示しています。
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' points ': [10, 10, 12, 12, 15, 17, 20, 20], ' assists ': [5, 5, 7, 9, 12, 9, 6, 6]}) #view DataFrame print (df) team points assists 0 to 10 5 1 to 10 5 2 to 12 7 3 to 12 9 4 B 15 12 5 B 17 9 6 B 20 6 7 B 20 6
例 1: すべての列で重複行を検索する
次のコードは、DataFrame のすべての列で重複行を検索する方法を示しています。
#identify duplicate rows
duplicateRows = df[df. duplicated ()]
#view duplicate rows
duplicateRows
team points assists
1 to 10 5
7 B 20 6
DataFrame には、他の行と完全に重複する行が 2 つあります。
keep=’last’引数を使用して、最後の行ではなく最初の重複行を表示することもできることに注意してください。
#identify duplicate rows
duplicateRows = df[df. duplicated (keep=' last ')]
#view duplicate rows
print (duplicateRows)
team points assists
0 to 10 5
6 B 20 6
例 2: 特定の列で重複行を検索する
次のコードは、DataFrame の “team” 列と “points” 列のみで重複行を検索する方法を示しています。
#identify duplicate rows across 'team' and 'points' columns
duplicateRows = df[df. duplicated ([' team ',' points '])]
#view duplicate rows
print (duplicateRows)
team points assists
1 to 10 5
3 to 12 9
7 B 20 6
「チーム」列と「ポイント」列の値が前の行の正確なコピーである行が 3 つあります。
例 3: 列内の重複行を検索する
次のコードは、DataFrame の「チーム」列のみで重複行を検索する方法を示しています。
#identify duplicate rows in 'team' column
duplicateRows = df[df. duplicated ([' team '])]
#view duplicate rows
print (duplicateRows)
team points assists
1 to 10 5
2 to 12 7
3 to 12 9
5 B 17 9
6 B 20 6
7 B 20 6
「チーム」列の値が前の行と完全に重複している行が合計 6 つあります。
追加リソース
次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。
Pandas で重複した行を削除する方法
Pandasで重複した列を削除する方法
Pandas でインデックスによって列を選択する方法