pandasでの重複データの削除と抽出の方法について
print(DF)
# ID value
# 0 1001 10
# 1 1001 20
# 2 1001 15
# 3 1002 5
# 4 1002 30
# 5 1003 25
重複を削除する
‘ID’というカラムをもとに重複しているデータを削除する場合。デフォルトでは「keep=’first’」となる
#重複している行のうち、最初の行を残す場合
DF.drop_duplicates(subset='ID', keep='first')
# ID value
# 0 1001 10
# 3 1002 5
# 5 1003 25
#重複している行のうち、最後の行を残す場合
DF.drop_duplicates(subset='ID', keep='last')
# ID value
# 2 1001 15
# 4 1002 30
# 5 1003 25
最も値の大きい行を残す
DF.sort_values(by=['value']).drop_duplicates(subset='ID', keep='last')
# ID value
# 1 1001 20
# 4 1002 30
# 5 1003 25
「sort.values」のデフォルトは昇順のため、大きい順にしたい場合は引数ascendingをFalseにする、もしくは「keep=’last’」にする。
重複を抽出する
重複したレコードを抽出する方法
DF[DF['ID'].duplicated()]
# ID value
# 1 1001 20
# 2 1001 15
# 4 1002 30
「DF[‘ID’].duplicated()」で重複しているかどうかのTrue/Falseを返す式が出来上がり、それに基づきTrueの行のみ表示する。