実務に生かすPythonサンプル

【pandas】重複したDataFrameの行を確認・削除【逆引きデータ分析】

こんにちは。投資エンジニアの三年坊主(@SannenBouzu)です。

今回は、pandasを使ったデータ分析を行いたい人の疑問に答えます。

pandasで重複行を削除したい。データ量が多いので、いきなり全部削除する前に対象となる重複行の一覧を確認したい。部分的に重複する行も対象にするにはどうすればいい?

大学の研究・自分の趣味・業務で、合わせて5年以上Pythonを使ってきた経験を生かして、データ分析ライブラリpandasで重複行を確認・削除する方法を紹介します。

この記事はこんな方におすすめ!

  • 用意したデータに重複があり、それを削除してからデータ分析を行いたい方
  • データ量が多いので、重複行の一覧をまず確認したい方
  • pandasで部分的に(一部のカラムだけ)重複する行も対象にして削除する方法を知りたい方

サンプルデータ【pandas.DataFrame】

サンプルデータを作成します。

 

duplicated()で(完全)重複行を確認する

DataFrameに対してduplicated()を使うと、重複する行について残すか残さないか決めるブール値のSeriesを作成できます

引数keepはデフォルトでは”keep=’first'”で、重複する最初の行がFalseになります。

最初(first)の行が重複ではない(False)ということで、keepされるイメージですね。

keepは’first’, ‘last’, Falseのいずれかの値を取ります。

今回はFalseを指定=「重複した行全てをTrue」にして、削除する対象にしましょう。

 

ブール値のSeries、is_complete_duplicateを使って、完全に重複する行をdfから取り出しましょう

 

duplicated()で(部分)重複行を確認する

部分的に重複する行を確認したい場合は、dfからSeriesを指定してduplicated()を適用することができます

例えば、name1とname2がどちらも同じ行を「重複」と考えたい場合は、以下のようにブール値のSeriesを作成できます。

引数subsetを使って、指定した列が全て一致している行を「重複」と見なすこともできます。

部分的に重複する行を、以下のように確認してみましょう。

 

pandasで重複した行を削除する

繰り返しになりますが、引数keepはデフォルトでは”keep=’first'”で、重複する最初の行がFalseになります。

 

論理否定演算子”~”で反転させると、重複する2回目以上の行だけがFalseになるので、dfから削除することができます。

 

drop_duplicates()で同じ結果を得ることができます。

 

関連記事:こちらも読まれています

【2019年版】Pythonインストール・Mac編【長く安全に使える環境構築】

Pythonを快適に使いこなすMac環境【現役エンジニアおすすめはPro 13インチ】

アフィリエイトサイトの成果レポートを1クリックで集計【自動化で収益アップ?】

 

より本格的にPythonを学ぶなら

より本格的にPythonを学びたい場合には、プログラミングスクールを活用するのがオススメです。

プログラミングスクールって、「プログラミングって何?」みたいな超初心者だけのものと思っていませんか?

最近では、経験者向けにも、レベルや希望に合わせた様々なコースが展開されています。

オススメなのが、Aidemyです。

特徴は、人工知能特化型のプログラミング学習サービスということ。

Pythonを学べるコース

  • AIアプリ開発コース(画像認識)
  • データ分析コース(数値予測)
  • 自然言語処理コース
  • E資格対策コース
  • クラウドAI開発コース
  • 実戦データサイエンスコース

Aidemyの教材は「理論よりもまずは実践」をうたっていて、他社と比較すると、かなり本格的に、現場でも実際に使われるスキルを身につけられます。

そして、どのコースも同じ料金で受け放題

余裕があれば、AIアプリ開発コースの内容と、クラウドAI開発コースの内容を組み合わせて学習することもできてしまいます。

無料のカウンセリングで、不明点や学習したい内容をまずは相談してみましょう。

» Aidemyの無料カウンセリングはこちら

 

もう一つオススメなのが、TechAcademyです。

オンラインプログラミングスクール受講者数No.1の実績に加えて、受講生限定の転職サポートもあり、TechAcademyで学んだスキルを生かせる職場への転職も可能です。

「セット割」を活用すると、Pythonを使った人工知能・データ分析のスキルを過不足なく身につけられます。

1週間の無料体験があるので、システムの使い心地やサポート体制をのぞいてみるのがいいかなと思います。

» TechAcademyの無料体験はこちら

 

どちらのスクールも質問サポートが充実していて、早ければその場で、遅くとも次の日には疑問が解消するので、

「独学でプログラミングを勉強してきたけど、行き詰まるたびに時間が奪われるし、周りに気軽に聞ける人もいない」

みたいな無駄な一日を過ごすことがなくなります。

 

以上、Pythonを本格的に学べるプログラミングスクールを2校紹介しました。どちらも最初に20〜30万円くらいの投資が必要ですが、実際にスキルを身につけてしまえば、あとで簡単に回収できるはずです。例えば、

  • Pythonエンジニアに転職して年収を上げる:50万円
  • 副業で業務委託:20万円(時給5,000円で週10時間、1か月)
  • クラウドソーシングの単発案件:5〜10万円

このように、プログラミングスクールにお金を払ってもすぐに回収できることが分かると思います。

実際に、Pythonを使う業務委託で時給5,000円というのは普通にあるので、スキルをつけたら「週末にちょっと作業」を1〜2か月続けるだけですよね。

Google検索で問題解決するのもいいですが、「毎回ちょっと場当たり的に対応していて苦しいな・・・」と感じているあなたは、一度腰を据えてPythonを本格的に学ぶことを選択肢に入れてみてはいかがでしょうか。

記事で紹介したプログラミングスクールの一覧

  • Aidemy→人工知能特化、無料カウンセリングあり
  • TechAcademy→受講者数No.1、1週間の無料体験あり

RELATED POST

COMMENT

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください