【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列"])

このサイトは、Pythonや生成AIなどを学べるオンラインプログラミングスクール AI Academy Bootcampが運営しています。

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の[]と[[]]に関して カラム取得方法を理解しよう!

🎁ちょっとひと息 ! 業務や学習に役立つライブラリーをプレゼント !

オンラインプログラミングスクールのAI Academy Bootcamp LINE公式のライブラリーでは無料動画、講座、最新技術資料など、学習や業務に役立つ秀逸な教材や実践的なリソースを豊富に取り揃えています!毎週新しいコンテンツも更新中です。LINE友だち登録でプレゼントします。ぜひご活用ください!

LINE Libraryで人気 の動画です。

倍速で学ぶ!生成AIを活用したプログラミング勉強法】 生成AIを活用して効率的にプログラミングを学ぶ方法を解説しています。生成AIの基本的な仕組みや効果的な活用法、注意点についても詳しく説明。勉強法とともに生成AIそのものについても学べる内容となっています。ぜひご覧ください!

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

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