LOC()とiLOC()の違いについて
こんにちは。SSD-2事業部のT・Yです。
今回はloc()とiloc()の違いを分かりやすく自分なりにまとめてみました!
下記、目次になります。
LOC()とILOC()とは
loc()とiloc()とは簡単に説明すると
loc()…DataFrameの内で条件を満たした行、列を抽出することができる。
iloc()…DataFrameの内の行と列を"行番号","列番号"で抽出することができる。
2つの共通点としては「DataFrameの範囲を絞りデータを抽出する」ということがあります。
記事の目的
この記事の目的としては、自分のようにloc()とiloc()の違いが分からない方、なんとなくで理解している方に明確な違いを提示できればと思います。
具体例などを用いて説明していきます
loc()について
loc()とは先ほども説明しましたが、
「DataFrameの内で条件を満たした行、列を抽出することができる」関数になります。下記、具体例を説明していきます。
loc()例1
・df_sample.loc[0:2,["年月","どうぶつ","年齢"]]
上記コードの説明は、
初めに行(例ではインデックス番号)の指定、 行の指定の後に列カラムの指定を行う(,["年月","どうぶつ","年齢"]) とこのデータフレームの指定した範囲のみ表示する。
loc()例2
・df_sample2.loc['2019-04':'2019-07','ねこ':'らくだ']
例1のコードではインデックス番号も用いてのコードでしたが、インデックスのみではなく、カラム(このコードでは日付)をインデックスに指定することもできます。
iloc()について
これまではloc()についての説明を行っていきましたが、iloc()について再度確認します。
iloc()とは「DataFrameの内の行と列を"行番号","列番号"で抽出することができる」関数です。下記、具体例を説明していきます。
iloc()例1
・df_sample.iloc[0:5,0:3]
上記コードは、loc()とは違い「行と列を「行番号」「列番号」で指定」でデータの範囲を指定します。
iloc()例2
・df_sample.iloc[0:5]
上記コードは、例1では行番号、列番号の両方を指定していますが、行番号のみの指定しています。
この上記コードだと5×5のデータフレームを表示します。
まとめ
このNote記事ではloc()とiloc()の違いについて説明させていただきました。
簡潔に違いについて述べると、
・locは行名(インデックスラベル)もしくは列名(カラムラベル)を指定。 ・ilocは行や列の番号(インデックス)を指定する。
という違いだと思われます。
Python学習で同じようなことで悩んでいる方がいましたら、ぜひ学習の一部に活用いただければ幸いです。
この記事が気に入ったらサポートをしてみませんか?