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

drop_duplicates
こつこつPython

この記事の執筆・監修

キノコード
キノコード    

テクノロジーアンドデザインカンパニー株式会社のCEO。
日本最大級のプログラミング教育のYouTubeチャンネル「キノコード」や、プログラミング学習サービス「キノクエスト」を運営。
著書「あなたの仕事が一瞬で片付くPythonによる自動化仕事術」や、雑誌「日経ソフトウエア」や「シェルスクリプトマガジン」への寄稿など実績多数。

import pandas as pd
import numpy as np

df = pd.DataFrame([['A','a',110], ['C','c',130], ['C','c',130], ['D', 'a',140],['A','a',110]],
columns=['col01', 'col02', 'col03'],
index=['idx01', 'idx02', 'idx03','idx04','idx05'])
df

データフレームに重複する値がある行を削除する方法です。
使用するメソッドはpandasデータフレームのdrop_duplicatesメソッドです。
このような重複のあるデータフレームを用意します。

df.drop_duplicates()

引数に何も指定しない場合は、要素の値が全て重複する行を削除します。
実行してみましょう。
重複していたidx3とidx5が削除されました。

df.drop_duplicates(subset=['col02'])

カラムを指定して値の重複を削除するには、引数subsetにカラムを指定します。
実行します。
指定したカラムで重複していた行が削除されました。

df

なお、元のデータフレームは変更されません。

df.drop_duplicates(inplace=True)
df

元のデータフレームを変更したい場合は、引数inplaceにTrueを渡します。

関連メソッド

【毎日Python】Pandasのデータフレームの行や列を削除する方法|drop

【毎日Python】Pandasのデータフレームの欠損値の行を削除する方法|dropna

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

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト