パンダ: 最大値の行を保持しながら重複を削除する方法


次のメソッドを使用すると、pandas DataFrame 内の重複を削除しながら、特定の列に最大値を含む行を保持できます。

方法 1: 列内の重複を削除し、行を最大値で維持する

 df. sort_values (' var2 ', ascending= False ). drop_duplicates (' var1 '). sort_index ()

方法 2: 複数の列の重複を削除し、行を最大値で保持する

 df. sort_values (' var3 ', ascending= False ). drop_duplicates ([' var1 ', ' var2 ']). sort_index ()

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

例 1: 列内の重複を削除し、行を Max で保持する

さまざまなチームのバスケットボール選手が獲得したポイントに関する情報を含む次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   ' points ': [20, 24, 28, 30, 14, 19, 29, 40, 22]})

#view DataFrame
print (df)

  team points
0 to 20
1 to 24
2 to 28
3 B 30
4 B 14
5 B 19
6 C 29
7 C 40
8 C 22

次の構文を使用して、重複したチーム名を含む行を削除しますが、ポイントの最大値を含む行は保持します。

 #drop duplicate teams but keeps row with max points
df_new = df. sort_values (' points ', ascending= False ). drop_duplicates (' team '). sort_index ()

#view DataFrame
print (df_new)

  team points
2 to 28
3 B 30
7 C 40

重複したチーム名を含む各行は削除されましたが、最大ポイント値を含む行は各チームに保持されました。

例 2: 複数の列の重複を削除し、最大値で行を保持する

次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   ' position ': ['G', 'G', 'F', 'G', 'F', 'F', 'G', 'G', 'F'],
                   ' points ': [20, 24, 28, 30, 14, 19, 29, 40, 22]})

#view DataFrame
print (df)

  team position points
0 AG 20
1 GA 24
2AF 28
3 BG 30
4 BF 14
5 BF 19
6 GC 29
7 GC 40
8 CF 22

次の構文を使用して、重複するチーム名ポジション名を含む行を削除できますが、ポイントの最大値を含む行は保持します。

 #drop rows with duplicate team and positions but keeps row with max points
df_new = df. sort_values (' points ', ascending= False ). drop_duplicates ([' team ',' position ']). sort_index ()

#view DataFrame
print (df_new)

  team position points
1 GA 24
2AF 28
3 BG 30
5 BF 19
7 GC 40
8 CF 22

重複するチーム名ポジション名を含む行はすべて削除されましたが、最大ポイント値を含む行はチームポジションの組み合わせごとに保持されました。

追加リソース

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

Pandas で重複した行を削除する方法
Pandasで重複した列を削除する方法
パンダで重複をカウントする方法

コメントを追加する

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