【毎日Python】Pythonでデータフレームの重複する行を抽出する方法|DataFrame.duplicated

import pandas as pd

df = pd.DataFrame({'col01': ['A', 'D', 'C', 'D', 'A', 'C', 'D', 'A'],
                   'col02': ['a', 'aa', 'c', 'd', 'a', 'c', 'd', 'aa'],
                   'col03': [110, 110, 130, 140, 110, 130, 140, 160]})

df

Pythonでデータフレームやシリーズから重複する行を抽出する方法です。
使用するのは、Pandasライブラリのduplicatedメソッドです。
なお、重複とは行の要素全てが重複することを意味します。

このようなデータフレームを用意します。

df.duplicated()

早速実行してみましょう。
重複のある行はTrue、それ以外の行はFalseと表示されました。
また、重複したデータの最初の行がFalse、ほかがTrueとなります。

df[df.duplicated()]

重複したデータの値をデータフレームで表示してみましょう。
実行します。
表示できました。

df.duplicated(keep='last')

引数keepにlastを指定すると、重複したデータの最後の行がFalse、ほかがTrueとなります。
実行します。
先ほどとは逆にうしろの行がFalseとなりました。

df.duplicated(subset='col02')

指定した列だけの重複を確認したい場合は、subsetの引数に列名を指定します。
実行します。

2列目の重複を確認できました。

df[df.duplicated(subset='col02')]
df.duplicated(subset='col02').sum()

なお、重複する行数のみを確認したい場合は、合計値を算出するsumメソッドを追加して実行してみましょう。
重複する行数を取得することができました。

関連メソッド

【毎日Python】Pandasのデータフレームの重複する行を削除する方法|drop_duplicates

【毎日Python】Pandasでデータフレームから重複のないデータを取得する方法|unique