【Python】Pandas loc と ilocの違いとは? 初心者向けにわかりやすく解説

locとiloc

Pandasのlocとilocは値を抽出するためのメソッドです。
まずはサンプルとなるデータフレームを作成します。

import pandas as pd
df = pd.DataFrame([[10, 20], [25, 50]], index=["1行", "2行"], columns=["1列", "2列"])

loc

まずは、locの動作から確認してみましょう。
locは行名もしくは列名を指定することで特定の値を抽出できます。行名や列名をラベルと置き換えて頂いても問題ありません。
1列目と2列目を抽出してみましょう。

pirnt(df.loc["1行", :])

上記を実行すると次のように出力されます。

1列    10
2列    20
Name: 1行, dtype: int64

他にも次のように書くこともできます。

print(df.loc[: , ["1列", "2列"]])

上記を実行すると次のように出力されます。

    1列  2列
1行  10  20
2行  25  50

存在しない列にアクセスするとNaNになります。

print(df.loc[: , ["1列", "5列"]])

上記を実行すると次のように出力されます。

    1列  5列
1行  10 NaN
2行  25 NaN

iloc

次にilocの動作を見ていきましょう。
ilocはindexを指定することで特定の値を抽出できます。つまり、行、列を番号(数字が0のインデックス)で指定します。

# df.iloc[行, 列]
print(df.iloc[1:2])# index指定が可能

上記を実行すると次のように出力されます。

    1列  2列
2行  25  50

また、ilocはスライス表記を用いることが出来るため次のように記述することも可能です。

print(df.iloc[:, -1])  # 負のインデックスを使い、末尾の要素から位置指定し2列目の全ての行を取得。
1行    20
2行    50
Name: 2列, dtype: int64

関連:DataFrameの[]と[[]]に関して カラム取得方法を理解しよう!

おわりに

この記事ではpandasのloc と iloc の違いを学びました。
まとめると、locは行名(インデックスラベル)もしくは列名(カラムラベル)を指定し、ilocは行や列の番号(インデックス)を指定するということでした。

データ分析や統計学を効率的に学ぶには…

pandasのloc と iloc の解説、いかがでしたでしょうか?もっと学びたいと思われた方にAI Academy Bootcampの公式LINEをご紹介します。友だち登録してくださった方に無料講義や無料動画のご案内、さらに学びたい方には受講割引クーポンのプレゼントもございます。

AI Academy Bootcamp ではAI・データサイエンス、機械学習の実践力を高める全4コース40時間以上の動画が見放題!AIの学習に必須のPythonの学習から始まり、データサイエンス・機械学習など、目的に応じた幅広い分野をカバーしています。

無料講義や無料動画を試して頂いて、ご受講をご検討頂けましたら幸いです。

是非サービスを活用し、効率よく、統計学や機械学習を身につけてみてください。