Pandas の記事をシリーズで書いています。
今回の記事は第21回目になります。
今回の記事では、
Pandasの.drop()メソッドと.pop()メソッドの違い
を解説していこうと思います。
.drop()と.pop()の違いについてネットを探してみると、色んな情報がありました。
英語で解説しているのが多かったので、翻訳も載せつつ、解説していきますね。
ではさっそく始めていきます。
.drop()と.pop()はPandasドキュメントでどう書かれている?
.drop()も.pop()も指定したコラムを削除するという共通点はあります。
引用元:Pandasドキュメント
引用元:Pandasドキュメント
ただ、一言で、『コラムを削除する』と言っても、色々な削除の仕方があります。
.pop()や.drop()で削除した『コラム自体』も後で使えるのか
削除されたものが返されるのか、DataFrameから特定の物が削除されたDataFrameが返されるのか
このちょっとした違いを理解しないと、.pop()を使うべきか.drop()を使うべきか迷ってしまうと思うので、具体的に解説していきます
下記のサイトからの引用にも、.pop()と.drop()の違いのヒントが書かれています
(.pop()について)
あなたが削除したコラムをSeriesとして返してくれるので、それを使うことができる(もしそうしたいのならば)
と書いています
では、.pop()メソッドの方から、どのような事ができるのか説明していきますね。
.pop()メソッド
disney映画に関するデータを読み込み、新たに作ったDataFrameオブジェクト をdisneyという変数に代入しました。
そのDataFrameから、.pop()メソッドを使ってtotal_grossというコラムを削除します。
そしてこの削除したtotal_grossコラムをSeriesとして使うことができます。
DataFrame の一つのコラムだった部分が、独立してSeries になりました。
.pop()メソッドを使って削除した後、オリジナルのDataFrameはどのようになっているか見てみると、.pop()メソッドで削除されたコラムがオリジナルのDataFrame からは切り離されているのが分かります。
引用元:DATA INDEPENDENT
翻訳:.pop()と.drop()は非常に似ている。.drop()は特定のコラムが除かれたDataFrame を返す。
一方.pop()はコラムを返す
.pop()メソッドはオリジナルのDataFrameを1枚のシートと考え、そのシートから特定のコラムを切り取る感じ。
特定のコラムを切り取った後のDataFrameは取り除かれた部分を除いて糊付けされ、それが新たなDataFrameになる感じです。
.drop()メソッドを使う
次に.drop()メソッドを使って特定のコラムを削除します
.drop()メソッドは、特定のインデックスでもコラムでもどちらでも削除する事ができるので、axis=1 にして、movie_title というコラムを削除します。
.drop()メソッドを使うとどうなるでしょうか。
指定されたコラムが独立したSeriesとして返される.pop()とは違い、.drop()では特定のコラムが削除されたDataFrameが返されました。
.drop()メソッドは、drop = 切り離すという日本語訳でもわかるように、DataFrameからあるコラムを切り離すことをしてくれます
また、dropという英語は『トカゲのしっぽが切り離される』という意味でも使うので、しっぽが切り離されたトカゲを想像すると覚えやすいと思います
まとめ
今回の記事では、.pop()と.drop()で、コラムを削除するときの違いについて解説してみました。
他にも.drop()はコラムだけでなく、インデックスも削除できるという違いはありますが、今回はコラムを削除するときの相違点ということだけにフォーカスして記事を書いてみました。
また引き続きPandasについての記事を書いていきますね。