【Python】Pandasメモ:ilocとlocの違い、データの抽出方法

【Python】Pandasメモ:ilocとlocの違い、データの抽出方法

はじめに

コジマです。

ilocとlocの使い方についてまとめます。

ilocとlocの違い

簡単に言うと

iloc:行を番号で指定する
loc:行をindexで指定する

となります。

実際に見ていきながら解説することにします。

データを準備

名前、身長、体重を持つデータを用意しました。

使い方

これだけで使えます。

df.iloc[行番号,列番号]
df.loc[行インデックス,列名]
※列は省略可能

ilocのサンプルソース

このように行は上から何番目の行か、列は左から何番目の列か
という指定をするだけでデータを抽出してくることができます。
範囲をスライスで複数抽出することもできます。

出力結果

以下のように取得できます。

locのサンプルソース

locにはインデックスが必要なので、set_indexメソッドを使用してインデックスを設定します。
その上で、ilocを同等の書き換えを行なっていきたいと思います。

出力結果

このように出力されます。
user3の行丸ごとのところだけ、インデックスになってる故に名前は出てきませんが、
実質同値となります。

インデックスを指定するとこのようにインデックスは一段下がって表示されます。

使い分け

個人的な所感となってしまいますが、名前で抽出できるlocに軍配が上がりました。
実際使い分けるとしたら自分はこんなシチュエーションかなと思いました。

ilocを使うとき

  • データ全体が見渡せる程度のデータ量のとき
  • スライスで特定の範囲を抽出したい時

locを使うとき

  • 名前で抽出したいとき
  • ソースコードの可読性を求める時

さいごに

こちらのUdemyの講座を参考にしました。
ilocとlocの使い分けがあやふやだったのがこの動画で晴れました。
英語ですが、わかりやすいです。
The Complete Pandas Bootcamp: Master your Data in Python.

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

以上、コジマでした。


Pythonカテゴリの最新記事