こんにちは!
皆さんは、irisデータセットを読み込む方法を知っていますか?
irisデータセットを読み込む方法は複数あるため、混同しないようにまとめます。
今回の記事では、以下の内容について紹介します。
- scikit-learnを用いて読み込む方法
- Seabornを用いて読み込む方法
- Pandasを用いて読み込む方法
scikit-learnを用いて読み込む方法
一番メジャーな方法として、scikit-learnを用いて読み込む方法があります。
読み込むことができるデータセットは複数ありますが、今回は一番メジャーなirisデータセットを用いて説明します。
他の読み込み可能なデータセットは以下のURLを参照してください。
The sklearn.datasets package embeds some small toy datasets …
irisデータセットを読み込むには、「load_iris()」を使用します。
以下のプログラムは、scikit-learnを用いてirisデータセットを読み込むプログラムです。
from sklearn.datasets import load_iris
iris = load_iris()
print(iris.data)
print(iris.feature_names)
print(iris.target)
print(iris.target_names)
実行結果
[[5.1 3.5 1.4 0.2]
[4.9 3. 1.4 0.2]
[4.7 3.2 1.3 0.2]
:(省略)
[6.5 3. 5.2 2. ]
[6.2 3.4 5.4 2.3]
[5.9 3. 5.1 1.8]]
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2]
['setosa' 'versicolor' 'virginica']
このように、scikit-learnで読み込んだ場合は、NumPy配列の形で読み込まれるため少し見にくいです。
そのため、PandasのDataFrame型に変換しましょう。
NumPy配列のirisデータセットをPandasのDataFrame型に変換する方法
以下のプログラムは、NumPy配列のirisデータセットをPandasのDataFrame型に変換するプログラムです。
import pandas as pd
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['species'] = iris.target_names[iris.target]
print(df.head())
実行結果
sepal length (cm) sepal width (cm) ... petal width (cm) species
0 5.1 3.5 ... 0.2 setosa
1 4.9 3.0 ... 0.2 setosa
2 4.7 3.2 ... 0.2 setosa
3 4.6 3.1 ... 0.2 setosa
4 5.0 3.6 ... 0.2 setosa
[5 rows x 5 columns]
Seabornを用いて読み込む方法
あまり知られていませんが、Seabornを用いてirisデータセットを読み込むこともできます。
Seabornにも読み込み可能なデータセットは複数用意されています。
irisデータセットを読み込むには、「load_dataset()」を使用します。
以下のプログラムは、Seabornを用いてirisデータセットを読み込むプログラムです。
import seaborn as sns
iris = sns.load_dataset('iris')
print(iris.head())
実行結果
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
scikit-learnで読み込んだ場合とは違い、Seabornで読み込むと、PandasのDataFrame型で読み込まれるため、初めから見やすく、使いやすいです。
Pandasを用いて読み込む方法
Pandasには、scikit-learnやSeabornのように、直接irisデータセットを読み込む機能は実装されていません。
しかし、csvファイルを読み込むことによって、irisデータセットを読み込むことができます。
データが保管されているURLやディレクトリパスを指定することで、データを読み込むことができるため、irisデータセットを読み込むことも可能です。
この方法を使用すれば、自身のPCにデータを保管しておくと、オフラインでも読み込むことが可能になるため便利です。
今回は、Seabornのgithubに保管されているcsvファイルを使用します。
以下のプログラムは、Pandasを用いてirisデータセットを読み込むプログラムです。
import pandas as pd
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
print(iris.head())
実行結果
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
当然、読み込んだデータはDataFrame型です。
まとめ
今回の記事では、以下の内容について紹介しました。
- scikit-learnを用いて読み込む方法
→「load_iris()」を使用
DataFrame型に変換すると使いやすい - Seabornを用いて読み込む方法
→「load_dataset()」を使用 - Pandasを用いて読み込む方法
→csvファイルを読み込む方法を使用
混同しないように覚えておくね!
使用する場合に応じて使い分けられるようになりましょう!