【Python】irisデータセットを読み込む方法を3つ紹介!

こんにちは!

皆さんは、irisデータセットを読み込む方法を知っていますか?

Python初心者
scikit-learnで簡単にできるのは知ってるよ!

irisデータセットを読み込む方法は複数あるため、混同しないようにまとめます。

今回の記事では、以下の内容について紹介します。

  • scikit-learnを用いて読み込む方法
  • Seabornを用いて読み込む方法
  • Pandasを用いて読み込む方法

scikit-learnを用いて読み込む方法

一番メジャーな方法として、scikit-learnを用いて読み込む方法があります。

読み込むことができるデータセットは複数ありますが、今回は一番メジャーなirisデータセットを用いて説明します。

他の読み込み可能なデータセットは以下のURLを参照してください。

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]
Python初心者
これでデータが見やすいし、使いやすくなったね!

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ファイルを読み込む方法を使用
Python初心者
いっぱい読み込む方法があるなんて知らなかった・・・
混同しないように覚えておくね!

使用する場合に応じて使い分けられるようになりましょう!