【Python】データフレームから1つの値を取得するには?loc, iloc, at, iatメソッドの使い方を紹介

20230813_Python プログラミング言語

前回DataFrameを使ってデータフレームを作成しました。

データフレームは2次元構造のデータのことでいわゆるテーブルでしたよね。
今回はデータフレームに格納されている1つの値を取得する方法について紹介します。

データフレームから1つの値を取得するには?

ここにある日のトレーニングデータがありました。
5行目1列目の値(60)を取得したいのですがこの場合はどうやって指定すれば良いでしょうか?

クリックして拡大できます

4つほど方法があります。

1. locメソッドを使う

locメソッドはこのように書きます。

loc[行名, 列名]

行名はインデックスが5, 列名はweightなのでloc[5, 'weight']と指定すれば良さそうですね。

クリックして拡大できます

2. ilocメソッドを使う

ilocメソッドはこのように書きます。

iloc[インデックス行番号, インデックス列番号]

ilocメソッドはインデックス番号を指定します。
インデックス番号は0から始まるので5行目は4になりますね。
また1列目は0です。

そのためiloc[4, 0]と指定しましょう。

クリックして拡大できます

カラム名を指定するとエラーになりました。

クリックして拡大できます

またインデックスは1から振り直していたのですがilocメソッドを使うときは0始まりになることに気をつけましょう。

3. atメソッドを使う

atメソッドはこのように書きます。

at[行名, 列名]

locメソッドと似たような使い方で名前を指定します。

クリックして拡大できます

インデックス番号を指定するとエラーになりました。

クリックして拡大できます

4. iatメソッド

iatメソッドはこのように書きます。

iat[インデックス行番号, インデックス列番号]

こちらもilocメソッドと同じようにインデックス番号を指定しましょう

クリックして拡大できます

インデックスが範囲外だとエラーになったり

クリックして拡大できます

カラム名を指定するとエラーになります。

クリックして拡大できます

まとめ

今回はデータフレームから値を取得するメソッドを4つ紹介しました。
それぞれ略称を正式名称に直すと覚えやすいかなと思いました。

loc = location, i = index の略でした。atはそのままですね。

値を取得したいときはこの4のメソッドから選んで使いましょう!