以下のようなDFの各数値を正規化(平均0,分散1)したい場合、
通常は
(x-mean)/std
で正規化すると思うのですが、mean(),std()を各列で算出しfor文を使ってちまちま計算するしかないのでしょうか?
各セルに対し、それぞれのmeanやstdを使って計算を行いたい場合の良い方法はありますでしょうか?
####df
0 1 2 3 4 5 6
0 1.586538 16.690000 2.117772 -4.695402 -0.563871 -0.195804 0.415493
1 1.711538 -19.832727 1.634866 -1.862069 -0.563871 -1.195804 0.227993
2 4.628205 22.328889 1.887003 -2.909688 -0.563871 -0.195804 0.569339
3 4.961538 -19.741818 1.608722 -1.630185 -0.563871 -2.195804 0.609041
###追記
以下の記述で解決しました。
python
1df.apply(lambda x: (x-x.mean())/x.std(), axis=0).fillna(0)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。