解 説

Scikit-learnで機械学習する場合に、numpy.ndarray型とPandasのDataFrame型をそれぞれ変換したくなるケースがあります。
Scikit-learnが用意しているdatasetを活用するとデータ形式がnumpy.ndarray型になっています。
numpy.ndarray型は少し扱いにくく、PandasのDataFrame型にするとデータの確認も容易になります。
そのため相互の変換ができると便利に扱えるようになるわけです。

numpy.ndarray型とPandas DataFrame型との相互変換

pandasとnumpyをインポートしておきます。

import pandas as pd
import numpy as np

PandasのDataFrameを作成します。

data_f1 = pd.DataFrame({'name':['Tahara','Suzuki','Yamada','Isono'],
          'id':[1,2,3,4],
          'age':[48,30,28,51],
          'weight':[60,78,64,58],
          'height':[168,173,162,172]})
data_f1

表示結果

次にnumpy.ndarray型に変更します。valuesプロパティを使うと簡単にデータ部分の値をnumpy.ndarray型で取得することができます。

data = data_f1.values
data

表示結果

上の方法では値しか取れていませんので、必要に応じてカラムのタイトルを取得します。

columns = data_f1.columns
columns

表示結果

型の確認をします。

type(data)

結果
——————————-
numpy.ndarray
——————————-

ndarray状態で特定の列のみをスライスします。

features = data[:,:2]
features

表示結果

ndarrayのデータをPandasにするには次のようにします。
つまり、通常のPandasデータを作成する方法です。

df = pd.DataFrame(data=data,columns=columns)
df

表示結果