データ可視化モジュールの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 : 一人であったかどうか
コメント