Ecco una query SQL che dovrebbe iniziare (supponendo che tu voglia calcolarla per colonna):
create table normalize as
select
(RT - min(RT)over()) / (max(RT)over() - min(RT)over()) * 0.8 + 0.1 as RT_norm
from test;
Ho testato questa query in sqlite3, non in MySQL. Non è necessariamente ottimale, ma segue intuitivamente la formula. Avviso, il over
trasforma le funzioni di aggregazione min/max in funzioni di finestra, il che significa che esaminano l'intera colonna, ma il risultato viene ripetuto su ogni riga.
Cose da fare
Dovresti ancora:
- invia la query MySQl tramite Python
- Ripetere lo stesso codice per ogni colonna
- assegna un nome a ciascuna colonna
- assegna la tabella risultante a uno schema (molto probabilmente)
- gestire la divisione per 0 nel caso in cui una colonna max e min siano uguali