AttributeError: 'numpy.ndarray' object has no attribute 'iloc'
エラー発生時
データセットから値を抽出しようとしたとき。
値を抽出するときは、locまたはilocを使いますよね。
原因
NumPyのndarrayオブジェクトに対して使用している。
ilocはpandasのDataFrameオブジェクトにしか使うことができません。
解決法
2つ考えられます。
- ilocを使わず、NumPyのスライシングをする
- 明示的に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’の解決法』でした。