Aqui está uma consulta SQL que deve começar (supondo que você queira calculá-la por coluna):
create table normalize as
select
(RT - min(RT)over()) / (max(RT)over() - min(RT)over()) * 0.8 + 0.1 as RT_norm
from test;
Eu testei essa consulta no sqlite3, não no MySQL. Não é necessariamente ideal, mas segue intuitivamente a fórmula. Observe que o
over
transforma as funções de agregação min/max em funções de janela, o que significa que elas olham para a coluna inteira, mas o resultado é repetido em cada linha. Tudo
Você ainda precisaria:
- enviar a consulta MySQl via Python
- repita o mesmo código para cada coluna
- dê um nome a cada coluna
- atribua a tabela resultante a um esquema (provavelmente)
- lidar com a divisão por 0 caso uma coluna max e min sejam iguais