パンダ: 複数の列の重複を削除する方法


次のメソッドを使用して、pandas DataFrame の複数の列にわたる重複行を削除できます。

方法 1: すべての列の重複を削除する

 df. drop_duplicates ()

方法 2: 特定の列の重複を削除する

 df. drop_duplicates ([' column1 ',' column3 '])

次の例は、次の pandas DataFrame で各メソッドを実際に使用する方法を示しています。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' region ': ['East', 'East', 'East', 'West', 'West', 'West'],
                   ' store ': [1, 1, 2, 1, 2, 2],
                   ' sales ': [5, 5, 7, 9, 12, 8]})

#view DataFrame
print (df)

  region store sales
0 East 1 5
1 East 1 5
2 East 2 7
3 West 1 9
4 West 2 12
5 West 2 8

例 1: すべての列の重複を削除する

次のコードは、すべての列で重複した値を持つ行を削除する方法を示しています。

 #drop rows that have duplicate values across all columns
df. drop_duplicates ()

	region store sales
0 East 1 5
2 East 2 7
3 West 1 9
4 West 2 12
5 West 2 8

インデックス位置 1 の行は、すべての列でインデックス位置 0 の行と同じ値を持っていたため、DataFrame から削除されました。

デフォルトでは、pandas は最初の行を重複として保持します。ただし、 keep引数を使用して、最後の重複行を保持するように指定できます。

 #drop rows that have duplicate values across all columns (keep last duplicate)
df. drop_duplicates (keep=' last ')

	region store sales
1 East 1 5
2 East 2 7
3 West 1 9
4 West 2 12
5 West 2 8

例 2: 特定の列の重複を削除する

次のコードを使用すると、リージョンおよびストア列内でのみ重複する値を持つ行を削除できます。

 #drop rows that have duplicate values across region and store columns
df. drop_duplicates ([' region ',' store '])

	region store sales
0 East 1 5
2 East 2 7
3 West 1 9
4 West 2 12

合計 2 行がデータフレームから削除されました。これは、 Region 列Store列に重複した値が含まれていたためです。

: drop_duplicates()関数の完全なドキュメントはここで見つけることができます。

追加リソース

次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。

パンダで重複を見つける方法
Pandasで重複した列を削除する方法
Pandas DataFrame の最初の行を削除する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です