Base.

技術に関する備忘録。

Pandasのilocに配列を与えて特定の要素を取得する方法について

ilocとは

Pandasのilocは絶対値座標で要素を取得することのできる属性である。

pandasで任意の位置の値を取得・変更するat, iat, loc, iloc | note.nkmk.me

本記事で言いたいこと

取得する要素の指定は整数の配列で行うこともできるが、この時の配列は昇順・降順になっている必要はなく、配列内で指定した数列の順序に従い取得される。

適当なDataFrameオブジェクトを作り確かめる。

import pandas as pd

df = pd.DataFrame(np.arange(12).reshape(4,3), columns=["A","B","C"])
df

【出力】
f:id:mtmdro:20220112095304p:plain

整数型の配列を作り特定の行を抽出してみる。 この時、あえて行の順番を昇順・降順のどちらでもないようにしてみる。

list1 = [2,3,0]
df.iloc[list1]

【出力】
f:id:mtmdro:20220112095541p:plain

列の取得も同様に行うことができる。

list2 = [2,0]
df.iloc[list1, list2]

【出力】
f:id:mtmdro:20220112095722p:plain

この指定方法は機械学習などでデータセットから一部をランダムにテストデータのために取り分けるなどの際に利用できる。