開始する必要のあるSQLクエリは次のとおりです(列ごとに計算する場合):
create table normalize as
select
(RT - min(RT)over()) / (max(RT)over() - min(RT)over()) * 0.8 + 0.1 as RT_norm
from test;
このクエリは、MySQLではなくsqlite3でテストしました。必ずしも最適であるとは限りませんが、直感的に式に従います。 over
に注意してください 最小/最大集計関数をウィンドウ関数に変換します。つまり、列全体を調べますが、結果は各行で繰り返されます。
トド
それでも次のことを行う必要があります:
- Python経由でMySQlクエリを送信する
- 列ごとに同じコードを繰り返します
- 各列に名前を付けます
- 結果のテーブルをスキーマに割り当てます(ほとんどの場合)
- 列の最大値と最小値が等しい場合は、ゼロ除算を処理します