实现了在查看表的时候,初步分析数据,对数值型数据进行一些分析:计算标准差,平均值,最大值,最小值等,效果:
主要利用pandas的describe函数,读取数据库,进行分析
读取数据库:
def pymysql_conn(): conn = pymysql.connect( host="127.0.0.1", # 需要连接的数据库的ip port=3306, user="root", # 数据库用户名 password="123456", # 数据库密码 database="bigwork_data" ) cursor = conn.cursor() return conn, cursor
转换数据类型并分析:
#获取快速分析的key def get_table_clean(name_table,database_name): #pandas读取数据库 conn, cursor=pymysql_conn() qu_sql = "SELECT * FROM "+name_table df = pd.read_sql_query(qu_sql, conn) #获取key值(china,english) keys_or=get_table_details_key(name_table,database_name) #获取keyEnglish keys=[] for i in keys_or: keys.append(i[0]) #转换数据类型 print("数据快速分析"+name_table) for i in keys: try: df[i] = df[i].astype(float) except: print("数据类型不符合") df_describe=df.describe() print(df_describe) return df_describe.keys(),df_describe.index,df_describe.values pass
前端js
$.ajax({ type: "GET", url: "/get_table_clean_key?table_name={{ table_name }}&database_name={{ database_name }}", dataType: "json", success: function(data){ data_key_clean[0]={field:"type",title:"",120} for (i=1;i<=data.len;i++){ data_key_clean[i]={field:data.data[i-1],title:data.data[i-1],120} } // 设置key值 table.render({ elem: '#clean'//以此来区分不同的表格 ,height: 450 ,url: '/get_table_clean_data?table_name={{ table_name }}&database_name={{ database_name }}' //数据接口 ,page: false //开启分页 ,cols: [data_key_clean] }); } }); //第一个实例 });
后端:
#获取快速数据分析数据 @app.route("/get_table_clean_key") def get_table_clean_key(): # 获取表名与数据库名 table_name = request.values.get("table_name") database_name = request.values.get("database_name") #调用获取表KEY的函数 clean_key_index,clean_index,clean_values= dictionary.get_table_clean(table_name, database_name) clean_key=[] for i in clean_key_index: clean_key.append(i) # 返回JSON print("返回的clean_key") print(clean_key) return jsonify({"data": clean_key, "len": len(clean_key)}) pass @app.route("/get_table_clean_data") def get_table_clean_data(): # 获取表名与数据库名 table_name = request.values.get("table_name") database_name = request.values.get("database_name") #调用获取表KEY的函数 clean_key,clean_index,clean_values= dictionary.get_table_clean(table_name, database_name) # 返回JSON # 转化为JSON格式 data_real = [] # 最后的形态{"key":value,......} count = len(clean_values) for i in range(count): flag = {} for j in range(len(clean_key)): flag[clean_key[j]] = clean_values[i][j] # table_data_flag==value,english_china==key flag["type"]=clean_index[i] data_real.append(flag) print("数据快速分析内容:(table_name=" + table_name + ",database_name=" + database_name + ")") print(data_real) return jsonify({"code": 0, "msg": "", "count": count, "data": data_real}) pass