学習用データセット – seaborn【Python】

データ可視化モジュールのseabornではサンプル用のデータセットを、pandas.DataFrameオブジェクトとして読み込むことができます。ここでは、seabornで提供されているデータセットについて解説を行います。

データセットについて

seabornのデータセットのおおもとのデータはGitHub上に公開されています。

なお、あくまでもこのデータセットはseabornの学習のためであり、「不要と判断されれば削除される可能性がある」と公式ドキュメント上で記載されていますのでご注意ください。

データセットの使い方

データセットは次のようにしてpandas.DataFrameオブジェクトとして取得することができます。

import seaborn as sns
data = sns.load_dataset('データセット名')

データセット名として指定可能なものの一覧は次のようにして取得することができます。

import seaborn as sns
print(sns.get_dataset_names())
['anscombe', 'attention', 'brain_networks', 'car_crashes', 'diamonds', 'dots', 'exercise', 'flights', 'fmri', 'gammas', 'iris', 'mpg', 'planets', 'tips', 'titanic']

ちなみに、これはGitHub上にアップロードされているcsvファイルの拡張子を除いたファイル名そのものです。

例えば、irisデータセットをpandas.DataFrameとして読み込む場合は

import seaborn as sns
iris = sns.load_dataset('iris')

とします。

なお、seabornのデータセットはモジュールに埋め込まれているわけではなく、オンラインレポジトリからダウンロードしてくる必要があるので、load_dataset関数を用いる際はインターネットに接続している必要があります。

データセットの詳細

代表的なデータセットについて解説していきます。

iris

3種類のアヤメのそれぞれ50個体の花びらとガクについて、それぞれその幅と長さの4種類の測定値を記録したデータです。
フィッシャーが1936年に発表した論文で使われたアヤメの分類のデータであり、「フィッシャーのアヤメ」として有名なデータセットです。

import seaborn as sns
iris = sns.load_dataset('iris')
print(iris)
     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
..            ...          ...           ...          ...        ...
145           6.7          3.0           5.2          2.3  virginica
146           6.3          2.5           5.0          1.9  virginica
147           6.5          3.0           5.2          2.0  virginica
148           6.2          3.4           5.4          2.3  virginica
149           5.9          3.0           5.1          1.8  virginica

[150 rows x 5 columns]
  • sepal_length : ガクの長さ
  • sepal_width : ガクの幅
  • petal_length : 花弁の長さ
  • petal_width : 花弁の幅
  • species : アヤメの種類

tips

ディナーとランチの総支払額と含まれるチップの額が、支払った人の性別や喫煙の有無などで分類されています。

参考 : https://www.kaggle.com/ranjeetjain3/seaborn-tips-dataset

import seaborn as sns
tips = sns.load_dataset('tips')
print(tips)
     total_bill   tip     sex smoker   day    time  size
0         16.99  1.01  Female     No   Sun  Dinner     2
1         10.34  1.66    Male     No   Sun  Dinner     3
2         21.01  3.50    Male     No   Sun  Dinner     3
3         23.68  3.31    Male     No   Sun  Dinner     2
4         24.59  3.61  Female     No   Sun  Dinner     4
..          ...   ...     ...    ...   ...     ...   ...
239       29.03  5.92    Male     No   Sat  Dinner     3
240       27.18  2.00  Female    Yes   Sat  Dinner     2
241       22.67  2.00    Male    Yes   Sat  Dinner     2
242       17.82  1.75    Male     No   Sat  Dinner     2
243       18.78  3.00  Female     No  Thur  Dinner     2

[244 rows x 7 columns]
  • total_bill : 総支払額(食事代、税込み) (USドル)
  • tip : チップ(USドル)
  • sex : 性別
  • smoker : 喫煙者か否か
  • day : 曜日(木・金・土・日のいずれか)
  • time : 食事の時間(昼食か夕食か)
  • size : 人数

titanic

タイタニック号沈没事故の乗客の生存者/死亡者のデータセットです。(データのもとはイギリス商務省)
データセットの構造はKaggleのタイタニックデータに類似していますが、項目に若干の違いがあります。また、データの行はKaggleのタイタニックデータの訓練データと同じです。

参考 : https://www.kaggle.com/c/titanic/data

import seaborn as sns
titanic = sns.load_dataset('titanic')
print(titanic)
     survived  pclass     sex   age  sibsp  parch     fare embarked   class    who  adult_male deck  embark_town alive  alone
0           0       3    male  22.0      1      0   7.2500        S   Third    man        True  NaN  Southampton    no  False
1           1       1  female  38.0      1      0  71.2833        C   First  woman       False    C    Cherbourg   yes  False
2           1       3  female  26.0      0      0   7.9250        S   Third  woman       False  NaN  Southampton   yes   True
3           1       1  female  35.0      1      0  53.1000        S   First  woman       False    C  Southampton   yes  False
4           0       3    male  35.0      0      0   8.0500        S   Third    man        True  NaN  Southampton    no   True
..        ...     ...     ...   ...    ...    ...      ...      ...     ...    ...         ...  ...          ...   ...    ...
886         0       2    male  27.0      0      0  13.0000        S  Second    man        True  NaN  Southampton    no   True
887         1       1  female  19.0      0      0  30.0000        S   First  woman       False    B  Southampton   yes   True
888         0       3  female   NaN      1      2  23.4500        S   Third  woman       False  NaN  Southampton    no  False
889         1       1    male  26.0      0      0  30.0000        C   First    man        True    C    Cherbourg   yes   True
890         0       3    male  32.0      0      0   7.7500        Q   Third    man        True  NaN   Queenstown    no   True

[891 rows x 15 columns]

基本となるデータ項目は以下の通りです。

  • survival : 生存 or 死亡 (0=死亡、1=生存)
  • pclass : チケットクラス (1=上層クラス、2=中級クラス、3=下層クラス)
  • sex : 性別 (male=男性、female=女性)
  • age : 年齢
  • sibsp : タイタニックに同乗している兄弟/配偶者の数
  • parch : タイタニックに同乗している親/子供の数
  • fare : 料金
  • embarked : 出港地 (C=Cherbourg、Q=Queenstown、S=Southampton)

seabornのタイタニックデータフレームでは、以下の情報も付け加えられています。(deck以外は基本項目から求めることのできる項目です)

  • who : 男性 or 女性
  • adult_male : 成人男性であるかどうか
  • deck : 乗船していたデッキ
  • embark_town : 出港地
  • alive : 生存したかどうか
  • alone : 一人であったかどうか

関連記事・スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です