pandasの学習用のデータセットを入手する
Pythonでpandasの学習をしていると、お試し用のデータセットが欲しくなることがあります。pandasにはデータセットをダウンロードする機能はありませんが、seabornにDataFrameとしてデータをダウンロードする機能があります。
目次
seabornが公開しているデータセット
GitHubのseabornのリポジトリにデータが公開されています。
公開されているデータは、get_dataset_names()関数で取得できます。
>>> import seaborn as sns
>>> sns.get_dataset_names()
['anagrams', 'anscombe', 'attention', 'brain_networks', 'car_crashes', 'diamonds', 'dots', 'exercise', 'flights', 'fmri', 'gammas', 'geyser', 'iris', 'mpg', 'penguins', 'planets', 'tips', 'titanic']
iris(アヤメの分類データ)やtitanic(タイタニック号の乗船名簿)が有名ですよね。
データセットのダウンロード
irisデータセットをダウンロードしてみます。
load_dataset()関数に引数としてデータセットを指定すると、データセットをダウンロードします。戻り値はDataFrameです。
下記の例は、irisデータセットをダウンロードして、dfという名前のDataFrameに代入しています。そのdfの情報をinfo()メソッドで、最初の5行のデータをhead()メソッドで表示します。
>>> import pandas as pd
>>> import seaborn as sns
>>> df = sns.load_dataset('iris')
>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 150 entries, 0 to 149
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 sepal_length 150 non-null float64
1 sepal_width 150 non-null float64
2 petal_length 150 non-null float64
3 petal_width 150 non-null float64
4 species 150 non-null object
dtypes: float64(4), object(1)
memory usage: 6.0+ KB
>>> df.head(5)
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
データセットをキャッシュから読み込む
ダウンロードしたデータは、キャッシュとしてローカルドライブに保存されます。2回目以降をキャッシュから読み込むようにすれば、ネットやGitHubの負荷を減らせるわけです。
キャッシュとしてデータセットが保存されているフォルダを調べるには、get_data_home()関数を使用します。
>>> import seaborn as sns
>>> sns.get_data_home()
'C:\\Users\\account_name\\seaborn-data'
Windows10で実行しているのですが、ログインアカウントのseaborn-dataというフォルダに保存されているようです。
C:\Users\account_name>dir seaborn-data
ドライブ C のボリューム ラベルは OS です
ボリューム シリアル番号は 8AFE-9592 です
C:\Users\account_name\seaborn-data のディレクトリ
2021/07/10 18:38 <DIR> .
2021/07/10 18:38 <DIR> ..
2021/07/10 18:38 3,858 iris.csv
1 個のファイル 3,858 バイト
2 個のディレクトリ 773,695,901,696 バイトの空き領域
iris.csvがダウンロードされていました。
特に何も指定しない場合は、ネットからのダウンロードよりもキャッシュからの読み込みが優先されます。
例として、キャッシュフォルダにあるiris.csvを下記のように書き換えます。
cache_test1, cache_test2
1,a
2,b
そして、seabornでデータセットを読み込んでみます。
>>> import pandas as pd
>>> import seaborn as sns
>>> df = sns.load_dataset('iris')
>>> df
cache_test1 cache_test2
0 1 a
1 2 b
キャッシュの方のデータが読み込まれました。
キャッシュを無効にしてネットから強制的にダウンロードする場合には、cache引数にFalseを指定します。ただし、この場合はダウンロードしたデータがキャッシュフォルダに保存されませんので注意してください。
>>> import pandas as pd
>>> import seaborn as sns
>>> df = sns.load_dataset('iris', cache=False)
>>> df.head(5)
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
主な関数やメソッド
seaborn.get_dataset_names()
ダウンロード可能なデータセットのリストを返します。
import seaborn as sns
ret = sns.get_dataset_names()
変数 |
型 |
内容 |
---|---|---|
ret |
list |
ダウンロード可能なデータセットのリスト |
seaborn.get_data_home()
データセットのキャッシュフォルダを返す関数です。
import seaborn as sns
ret = sns.get_data_home([data_home])
変数 |
型 |
内容 |
---|---|---|
data_home |
省略可。規定値はNone。 |
|
ret |
str |
データセットのキャッシュフォルダ |
seaborn.load_dataset()
データセットをダウンロードして、DataFrameに読み込みます。
import seaborn as sns
df = sns.load_dataset(name, [cache], [data_home], [kws])
変数 |
型 |
内容 |
---|---|---|
name |
str |
データセットの名前 |
cache |
boolean |
省略可。規定値はTrue。キャッシュを使用するかどうか。 |
data_home |
str |
省略可。規定値はNone。キャッシュフォルダの指定。 |
kws |
key and values |
省略可。その他の読み取りオプションの指定。 |
df |
DataFrame |
データセットのDataFrame。 |
cacheがTrueのとき、最初にローカルのキャッシュの読み込みを試行して、ローカルから読み込みできない場合はネットからのダウンロードを試みます。ダウンロードできた場合は、データをキャッシュフォルダに保存します。
公開日
広告
Pythonでデータ分析カテゴリの投稿
- DataFrameの欠損値を特定の値で置き換える
- Pythonでpandas入門1(データの入力とデータへのアクセス)
- Pythonでpandas入門2(データの追加と削除および並び替え)
- Pythonでpandas入門3(データの統計量の計算)
- Pythonでpandas入門4(データの連結と結合)
- Pythonでpandas入門5(欠損値(NaN)の扱い)
- Pythonでデータを学習用と検証用に分割する
- Pythonでデータ分析入門1(初めての回帰分析)
- Pythonでデータ分析入門2(初めてのロジスティック回帰(2クラス分類))
- Pythonでデータ分析入門3(初めての決定木(多クラス分類))
- Pythonで回帰モデルの評価関数
- Pythonで箱ひげ図を描く
- Python(pandas)でExcelファイルを読み込んでDataFrameにする
- pandasでカテゴリ変数を数値データに変換する
- pandasでクロス集計する
- pandasで同じデータ(要素)がいくつあるか調べる
- pandasで相関係数を計算する
- pandasとseabornでデータの可視化(散布図行列)
- pandasの学習用のデータセットを入手する
- scikit-learnのサンプルデータセットを入手する