如何从Python中的Mysql规范化数据挖掘Min Max

时间:2019-03-10 04:06:04

标签: python mysql normalization minmax

这是我在mysql中的数据示例,我使用lib flashext.mysql和python 3

<!DOCTYPE html>
<html>
<head>
	<title>fdsjf</title>
	<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
	<div class="form1">
		<div class="data_hewan">
			<select name="pet" class="form-control" id="pet_name">
				<option value="" selected="selected">Pilih Ras Hewan</option>
				<option value="1">Korean Jindo</option>
				<option value="2">Siberian Husky</option>
				<option value="3">Maine Coon</option>
			</select>

			<div class="all-rule hidden">
				<div class="formRule1 hidden">
					<span>halo</span>
				</div>
				<div class="formRule2 hidden">
					<span>eooo</span>
				</div>
			</div>
			<div class="show-rule">
			</div>
		</div>
		<div class="newForm"></div>
		<a id="addhewan" name="add" id="addhewan">Add Hewan</a>
	</div>

	
</body>
</html>

公式MinMax是

RT      NK    NB    SU    SK    P    TNI IK   IB     TARGET
84876   902  1192  2098  3623  169   39  133  1063   94095
79194   902  1050  2109  3606  153   39  133   806   87992
75836   902  1060  1905  3166  161   39  133   785   83987
75571   902   112  1878  3190  158   39  133   635   82618
83797  1156   134  1900  3518  218   39  133   709   91604
91648  1291   127  2225  3596  249   39  133   659   99967

我得到了从csv标准化数据的代码

(data-min)/(max-min)*0.8+0.1

我知道怎么这样计算

import pandas as pd
df = pd.read_csv("dataset.csv")
norm = (df - df.min()) / (df.max() - df.min() )*0.8 + 0.1

下一列也是如此

(first data of RT - min column RT data) / (max column RT- min column RT) * 0.8 + 0.1

请帮助我,如何规范化数据库中的数据,它调用“数据集”并对其进行规范化,并在另一个表中输入“规范化”

1 个答案:

答案 0 :(得分:0)

这是一个SQL查询,可以帮助您入门(假设您想按列计算):

   create table normalize as
     select
       (RT - min(RT)over()) / (max(RT)over() - min(RT)over()) * 0.8 + 0.1 as RT_norm
     from test;

我在sqlite3(而不是MySQL)中测试了此查询。它不一定是最佳的,但可以直观地遵循公式。注意,over将min / max聚合函数转换为窗口函数,这意味着它们查看整列,但结果在每一行上重复。

Todo

您仍然需要:

  • 通过Python发送MySQl查询
  • 为每列重复相同的代码
  • 为各列命名
  • 将结果表分配给一个模式(最有可能)
  • 在列的最大值和最小值相等的情况下,将句柄除以0