PR

AttributeError: ‘numpy.ndarray’ object has no attribute ‘iloc’の解決法

アイキャッチ画像
AttributeError: 'numpy.ndarray' object has no attribute 'iloc'

エラー発生時

データセットから値を抽出しようとしたとき。

値を抽出するときは、locまたはilocを使いますよね。

原因

NumPyのndarrayオブジェクトに対して使用している。

ilocはpandasのDataFrameオブジェクトにしか使うことができません。

解決法

2つ考えられます。

  1. ilocを使わず、NumPyのスライシングをする
  2. 明示的にpandasのDataFrameを再定義する

順番にそれぞれ解説します。

ilocを使わず、NumPyのスライシングをする

NumPyのスライシングでも、値を抽出できますよね。

array[行, 列]

たとえば、3行目・5列目の要素を抽出するときは、次のとおり。

your_array[2, 4]

明示的にpandasのDataFrameを再定義する

NumPyのndarrayオブジェクトをpandasのDataFrameオブジェクトに変換します。

これにより、ilocが使えるようになりますね。

# Pandasをインポート
import pandas as pd

# NumPyのndarrayオブジェクトをpandasのDataFrameオブジェクトに変換
dataframe = pd.DataFrame(ndarray)

補足

操作を実行しようとしているオブジェクトのタイプは、次のようにして確認できます。

type(object)

‘numpy.ndarray’または、’pandas.dataframe’と表示されますよ。

以上、『AttributeError: ‘numpy.ndarray’ object has no attribute ‘iloc’の解決法』でした。