Python前処理講座

【pandas】apply:データフレームの行処理【繰り返し処理】


こんにちは,shun(@datasciencemore)です!!

今回はapplyについて学習していきます.

applyは,データフレームの各行に対して関数を適用するメソッドです.

イメージとしてはこのようになります.

データフレームと関数をapplyに適用すると,データフレームの各行に関数を適用した結果が出力されます.

mapのデータフレーム版だと考えればわかりやすいと思います.

なお,axis=1と設定する必要があることに注意してください.

0.準備

1.applyの基本

例えば,以下のデータフレームと関数を考えます.

データフレーム:df(ダイヤモンドデータ)のdepth列,color列

関数:color列がEであれば,depth列の数値を,color列がIIであれば0を,そうでなければ1と出力する.

このデータフレームと関数をapplyに適用すると,このようなシリーズを出力します.

2.applyとassign

applyは,mapと同様,assignと相性がよく,併用することが多いです.

例えば,このように条件が複数あるような処理についてもapplyとassignを併用すれば,比較的簡単にコーディングすることができます.

3.mapとapply

mapとapplyを比較はこちらの表のようになります.

実は今まで説明してきませんでしたが,applyはデータフレームだけでなく,シリーズもインプットとすることが可能です.

ただ,はっきり言ってこの表は覚える必要はありません.

なぜなら今まで説明してきたとおり,

  • シリーズをインプットとするならばmap
  • データフレームをインプットとするならばapply

と覚えておけば,困ることはないからです.

この表をみてもわかるとおり,基本mapのほうが性能がいいです.

なので,mapが使用できるのであれば,mapを使用すればいいということになります.

mapが使用できるのは,インプットがシリーズのときなので,

インプットがシリーズのときは,mapを使用する.

そうでないとき,すなわち,インプットがデータフレームのときは,applyを使用する .

と覚えておけば,自然と最適なコーディングができます.

まとめ

今回はapplyについて学習してきました.

  1. applyの基本
  2. applyとassign
  3. mapとapply

applyはmapと似ています.

違いは色々ありますが,細かいことは気にしないで

  • インプットがシリーズ ⇒ map
  • インプットがデータフレーム ⇒ apply

と覚えておけばOKです!!

mapと同様,applyも最初は概念を理解するのが難しいですが,慣れるとfor文よりも楽にコーディングできて非常に便利です.

使いこなせるように練習しましょう!

それでは,お疲れさまでした!!

次回

【pandas】applymap:データフレームの要素処理【繰り返し処理】

こんにちは,shun(@datasciencemore)です!! 今回はapplymapについて学習していきます. applymapは,データフレームの各要素に対して関数を適用するメソッドです. イメ ...

続きを見る

-Python前処理講座