第一节阶段大作业 数据初步分析

实现了在查看表的时候,初步分析数据,对数值型数据进行一些分析:计算标准差,平均值,最大值,最小值等,效果:

 

 

主要利用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:"",width:120}
                 for (i=1;i<=data.len;i++){
                     data_key_clean[i]={field:data.data[i-1],title:data.data[i-1],width: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

 

posted @ 2021-11-24 17:49  风吹过半夏  阅读(34)  评论(0编辑  收藏  举报