大作业 数据清洗(清洗结果的展示与导出)
点击结果查看并导出即可查看清洗后的结果,清洗后数据会先保存到数据库中,然后可以通过穿梭框将要导出的属性列导出为excel
文件导出利用是原先的原始表数据导出,与之前的原理一摸一样,保存到数据库也与最一开始的文件上传并导入到数据库原理一样
#清洗数据存入数据库 def data_clean_save(data_clean,table_name,database_name): flag=1 conn,cursor=get_conn_mysql_name(database_name) sql="DROP TABLE if EXISTS "+table_name+" ; " cursor.execute(sql) #判断表是否存在,存在就删除 sql = " CREATE TABLE " + table_name + " (" key_0=data_clean.keys() key="" for i in key_0: key=key+","+i key=key[1:] j = 0 for i in key_0: sql = sql + i + " TEXT comment 'null,null'," j = j + 1; creat_sql = sql[0:-1] + ") ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;" print(creat_sql) # 获取%s s = ','.join(['%s' for _ in range(len(data_clean.columns))]) # 获取values values = [] for i in data_clean.values.tolist(): values.append(i) # 组装insert语句 insert_sql = 'insert into {}({}) values({})'.format(table_name, key, s) print(insert_sql) try: cursor.execute(creat_sql) except: traceback.print_exc() flag = 0 print("表创建失败") # # 插入数据 try: for i in values: cursor.execute(insert_sql, i) print(insert_sql) print(i) conn.commit() except: traceback.print_exc() flag = 0 print("写入错误") close_conn_mysql(cursor, conn) return flag pass
#查看最终结果,将结果保存到数据库的bigwork_update_data
@app.route('/get_data_clean_result')
def get_data_clean_result():
table_name = request.values.get("table_name")
table_name=table_name+"_clean"
num_0 = data_clean.shape[0]
num_1 = data_clean.shape[1]
data = []
flag=0
#存入数据库
code=dataclean.data_clean_save(data_clean,table_name,"bigwork_update_data")
#将数据转换为json
for i in range(num_0):
json_list = {}
for j in range(num_1):
json_list[data_clean.keys()[j]] = data_clean.values[i][j]
data.append(json_list)
flag=flag+1
return jsonify({"code": 0, "msg": code, "count": flag, "data": data})
<blockquote class="layui-elem-quote layui-text"> <h2>数据清洗:{{ table_name }}h2> <h4 style="color: chocolate">已导入到数据库,表名:{{ table_name }}_cleanh4> blockquote> <div style="padding: 15px;"> <table id="demo" lay-filter="test">table> div> <blockquote class="layui-elem-quote layui-text"> <h2>文件导出h2> blockquote> <div id="export_select" class="demo-transfer">div> <br> <form class="layui-form" action=""> <button type="button" class="layui-btn" id="export" >开始导出button> form> <br> <br> <br>