Her er en SQL-forespørgsel, der burde få dig i gang (forudsat at du vil beregne den pr. kolonne):
create table normalize as
select
(RT - min(RT)over()) / (max(RT)over() - min(RT)over()) * 0.8 + 0.1 as RT_norm
from test;
Jeg testede denne forespørgsel i sqlite3, ikke MySQL. Det er ikke nødvendigvis optimalt, men følger intuitivt formlen. Bemærk, over
omdanner min/maks samlede funktioner til vinduesfunktioner, hvilket betyder, at de ser på hele kolonnen, men resultatet gentages på hver række.
Todo
Du skal stadig:
- send MySQl-forespørgslen via Python
- gentag den samme kode for hver kolonne
- giv hver kolonne et navn
- tildel den resulterende tabel til et skema (mest sandsynligt)
- håndtag dividere med 0, hvis en kolonne max og min er ens