はじめに
社内・社外でデータサイエンス、統計の教育を務める機会が増えてきたため
pandas初心者向けに備忘録として、記事を書かせていただきます
テーブルデータ整形時、あるあるの処理を備忘録としてちょっとまとめておきます
データのインポート
import pandas as pd
data = pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv")
データの確認
データの確認
data.head(5)
※カッコ内の数字が表示する行数
↓実行すると
データサイズの確認
data.shape
↓実行すると、行数・列数を確認できる
(150, 5)
ざっくり統計量の確認
data.describe()
↓実行すると
欠損値の確認
data.isna().any()
データの整形
使用する因子を絞る
sepal_lengthとspeciesの因子を抽出しcut_dataに代入する
use_col=['sepal_length','species']
cut_data=data[use_col]
cut_data.head()
↓実行すると
新たな因子を追加する
categoryをすべて1として追加する場合
cut_data['category']=1
cut_data.head()
↓実行すると
さらにsepal_lengthの個々の値とsepal_lengthの平均値の差をresidualという名前の因子で追加する場合
cut_data['residual']=cut_data['sepal_length']-cut_data['sepal_length'].mean()
cut_data.head()
↓実行すると
データの正規化
sepal_lengthに対して、min-max Normalizationを実施するとき
\frac{X-X_{min}}{X_{max}-X_{min}}
len_nol=( cut_data['sepal_length'] - cut_data['sepal_length'].min() )/( cut_data['sepal_length'].max() - cut_data['sepal_length'].min() )
cut_data['len_nol']=len_nol
cut_data.describe()
↓実行するとlen_nolの最小値が0,最大値が1となっていることを確認できる
データの標準化
sepal_lengthに対して標準化(standardization)を実施すると
\frac{X-μ}{σ}
len_sta = ( cut_data['sepal_length'] - cut_data['sepal_length'].mean() ) / cut_data['sepal_length'].std()
cut_data['len_sta']=len_sta
cut_data.describe()
↓実行するとlen_staの平均が0,分散が1となっていることを確認できる
データの結合
列方向にデータを結合する場合
dataの列の最後にcut_dataのpetal_lengthの正規化とpetal_lengthの標準化したものを結合する場合、
new_data=pd.concat([ data, cut_data['len_nol'], cut_data['len_sta'] ],axis=1)
new_data.head()
↓実行すると
データの保存
csv形式で保存する
new_data.to_csv("./newdata.csv")
%ls
実行するとカレントディレクトリにてnewdata.csvが保存されていることが確認できる
最後に
これらがサラッと書ければ概ね問題ないかなと感じます
必要なものはまた追記していこうと思います