sql >> Databasteknik >  >> RDS >> Mysql

Hur normalisera Data Mining Min Max från Mysql i Python

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



  1. Hur tar jag bort en tabell från en mysqldump

  2. Hur man implementerar ett dubbelriktat unikt index över flera kolumner

  3. ActiveRecord::StatementInvalid. PG-fel

  4. Ordna efter bästa matchning i vältalig