ポケモンデータセット(CSVファイル)の読み込みと散布図(Python, pandas, matplotlib, seaborn を使用)
利用条件は,利用者自身で確認すること.
前準備
Git のインストール
Git のページ: https://git-scm.com/
Python の準備(Windows,Ubuntu 上)
- Windows での Python 3.10,関連パッケージ,Python 開発環境のインストール(winget を使用しないインストール): 別ページ »で説明
- Ubuntu では,システム Pythonを使うことができる.Python3 開発用ファイル,pip, setuptools のインストール: 別ページ »で説明
【サイト内の関連ページ】
- Python のまとめ: 別ページ »にまとめ
- Google Colaboratory の使い方など: 別ページ »で説明
【関連する外部ページ】 Python の公式ページ: https://www.python.org/
Pokemon データセットの準備
謝辞:Pokemon データセットの作者に感謝します.
Windows の場合
Windows を使用する場合は,次のように操作する.
- データディレクトリの作成
mkdir /p c:\data
- カレントディレクトリの移動とデータのダウンロードと展開(解凍)
cd C:\data git clone https://gist.github.com/armgilles/194bcff35001e7eb53a2a8b441e8b2c6 move 194bcff35001e7eb53a2a8b441e8b2c6\pokemon.csv .
CSV ファイル pokemon.csv が,データディレクトリにできる
Ubuntu, Debian 系(Ubuntu や RaspyerryPi など)のとき
- 前準備
wget, p7zip-full のインストール
sudo apt -y update sudo apt -y install wget p7zip-full
- データディレクトリの作成と,カレントディレクトリの移動
sudo mkdir /usr/local/dt sudo chown -R ${USER}:${USER} /usr/local/dt cd /usr/local/dt
- データのダウンロードと展開(解凍)
CSV ファイル pokemon.csv が,データディレクトリにできる
wget https://gist.github.com/armgilles/194bcff35001e7eb53a2a8b441e8b2c6/archive/92200bc0a673d5ce2110aaad4544ed6c4010f687.zip "c:\Program Files\7-Zip\7z.exe" x -o/usr/local/dt 92200bc0a673d5ce2110aaad4544ed6c4010f687.zip rm -f 92200bc0a673d5ce2110aaad4544ed6c4010f687.zip mv 194bcff35001e7eb53a2a8b441e8b2c6-92200bc0a673d5ce2110aaad4544ed6c4010f687/pokemon.csv . rmdir 194bcff35001e7eb53a2a8b441e8b2c6-92200bc0a673d5ce2110aaad4544ed6c4010f687 ls -la pokemon.csv
Python のデータフレームで扱ってみる
- CSV ファイルの読み込み
import pandas as pd pokemon = pd.read_csv("C:/data/pokemon.csv")
- データの確認
print(pokemon.head())
- 基本的な情報の表示
- head: 先頭部分の表示
- shape: サイズ
- ndim: 次元数
- columns: 属性名
- info(): 各属性のデータ型
print(pokemon.head()) print(pokemon.info()) print(pokemon.shape) print(pokemon.ndim) print(pokemon.columns)
4. pokemon データセットの主成分分析プロット
- 主成分分析プロットの前準備
import numpy as np import sklearn.decomposition %matplotlib inline import matplotlib.pyplot as plt import warnings warnings.filterwarnings('ignore') # Suppress Matplotlib warnings # 主成分分析 def prin(A, n): pca = sklearn.decomposition.PCA(n_components=n) return pca.fit_transform(A) # 主成分分析で2つの成分を得る def prin2(A): return prin(A, 2) # M の最初の2列を,b で色を付けてプロット.b はラベル def scatter_label_plot(M, b, alpha): a12 = pd.DataFrame( M[:,0:2], columns=['a1', 'a2'] ) f = pd.factorize(b) a12['target'] = f[0] g = sns.scatterplot(x='a1', y='a2', hue='target', data=a12, palette=sns.color_palette("hls", np.max(f[0]) + 1), legend="full", alpha=alpha) # lenend を書き換え labels=f[1] for i, label in enumerate(labels): g.legend_.get_texts()[i].set_text(label) plt.show() # 主成分分析プロット def pcaplot(A, b, alpha): scatter_label_plot(prin2(A), b, alpha)
- 主成分分析プロット
X = pokemon.iloc[:,4:7].to_numpy() y = pokemon.iloc[:,2] pcaplot(X, y, 0.4)