Här är en SQL-fråga som borde få dig igång (förutsatt att du vill beräkna den per kolumn):
create table normalize as
select
(RT - min(RT)over()) / (max(RT)over() - min(RT)over()) * 0.8 + 0.1 as RT_norm
from test;
Jag testade den här frågan i sqlite3, inte MySQL. Det är inte nödvändigtvis optimalt, men följer intuitivt formeln. Observera, over
omvandlar min/max-aggregatfunktionerna till fönsterfunktioner, vilket innebär att de tittar på hela kolumnen, men resultatet upprepas på varje rad.
Att göra
Du skulle fortfarande behöva:
- skicka MySQl-frågan via Python
- upprepa samma kod för varje kolumn
- ge varje kolumn ett namn
- tilldela den resulterande tabellen till ett schema (mest troligt)
- hantera dividera med 0 om en kolumn max och min är lika