Đây là một truy vấn SQL sẽ giúp bạn bắt đầu (giả sử bạn muốn tính toán nó trên mỗi cột):
create table normalize as
select
(RT - min(RT)over()) / (max(RT)over() - min(RT)over()) * 0.8 + 0.1 as RT_norm
from test;
Tôi đã thử nghiệm truy vấn này trong sqlite3, không phải MySQL. Nó không nhất thiết phải tối ưu, nhưng theo trực quan công thức. Lưu ý, over
biến các hàm tổng hợp tối thiểu / tối đa thành các hàm cửa sổ, có nghĩa là chúng nhìn vào toàn bộ cột, nhưng kết quả được lặp lại trên mỗi hàng.
Công việc
Bạn vẫn cần:
- gửi truy vấn MySQl qua Python
- lặp lại cùng một mã cho mỗi cột
- đặt tên cho từng cột
- gán bảng kết quả cho một giản đồ (rất có thể)
- xử lý số chia cho 0 trong trường hợp cột max và min bằng nhau