网站建设实验感想,wordpress采集教程,哪家公司做企业网站稳定优惠,前端开发有前途吗#x1f345; 作者主页#xff1a;不吃西红柿
#x1f345; 简介#xff1a;CSDN博客专家#x1f3c6;、HDZ核心组成员#x1f4aa; 欢迎点赞、收藏、评论 #x1f345; 粉丝专属福利#xff1a;简历模板、PPT模板、知识体系、面试题库、技术互助。直接去文末领取 作者主页不吃西红柿 简介CSDN博客专家、HDZ核心组成员 欢迎点赞、收藏、评论 粉丝专属福利简历模板、PPT模板、知识体系、面试题库、技术互助。直接去文末领取 包邮送书关注文末公众号回复「送书」 公号「信息技术智库」知识内容如下
本期重点使用python探查mysql数据库数据分析类人员必备 目录
一、缘起 二、转机
三、成果
四、过程
1、导包
2、连接数据库
3、数据探查
4、写execl 一、缘起
事情是这样的领导安排一个活详细探查xx公司的数据治理包括数据源数据流数据质量。
PS.工作量非常大费劲整理出质量报告 好的没问题 嘴上逞强心在滴血 二、转机
我一想数据探查不就是看这些指标
表名,列名,空值数量,总数据量,空值率,字符类型,字段长度,备注,主键,权限 既如此何不用python
于是乎奋笔疾书 三、成果 说干就干最终用python 快速完成数据治理调研而我楼下遛弯去了~
但是活可没马虎给大家康康效果 四、过程
为了让更多有数据处理需求的小伙伴高效搞定工作我觉得把相关代码完全开源当然也有提升的地方希望小伙伴在评论区指指点点。 代码大致分为4个部分
1、导包
#codingutf-8
from __future__ import division
import os,openpyxl,pymysql as MySQL
2、连接数据库
print(开始连接ing)
try:connMySQL.connect(host127.0.0.1,port3306,userroot,passwdroot,dbtomato,charsetutf8)#charset解决字符乱码
except:print(连接失败!)
cur conn.cursor()
print(连接成功)3、数据探查
#tab[xxxxxx,bbbbbb] #指定探索的表名
tab[]
if len(tab)0 :quaryshow tables; retcur.execute(quary)retcur.fetchall() #结果是二层tuplefor i in ret:tab.append(i[0])print(表数量 %s%len(tab))print(表list %s%tab)
else:passm1
result[]
result.append([表名,列名,空值数量,总数据量,空值率,字符类型,字段长度,备注,主键,权限])
for i in tab:if m100:breakprint(i)print(第 str(m) 个表)quary1select count(*) from %s%iretsccur.execute(quary1)retsccur.fetchall()quary2select COLUMN_NAME from Information_schema.columns where table_Name %s;%iret1cur.execute(quary2)ret1cur.fetchall()for col in ret1:ll[]quary3select count(*) from %s AS AAA where AAA.%s is null; %(i,col[0])print(quary3)ret2cur.execute(quary3)ret2cur.fetchall()quary4SELECT DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,COLUMN_COMMENT,COLUMN_KEY,PRIVILEGES from information_schema.COLUMNS where TABLE_NAME\%s\ and COLUMN_NAME\%s\;%(i,col[0])print(quary4)re4cur.execute(quary4)re4cur.fetchall()print(re4)ll.append(i)ll.append(col[0])ll.append(ret2[0][0])ll.append(retsc[0][0])try:ll.append(str(round(ret2[0][0]/retsc[0][0],2)))except:ll.append(0)ll.append(re4[0][0])ll.append(re4[0][1])ll.append(re4[0][2])ll.append(re4[0][3])ll.append(re4[0][4])result.append(ll)mm1
print(result)
cur.close()
conn.close()4、写execl pathD:\\export # 输入文件路径
print(请输入文件名如不输入默认文件名export: )
exportnameinput()
if exportname:exportnameexport
if os.path.exists(%s\%s.xlsx%(path,exportname)):os.remove(%s\%s.xlsx%(path,exportname))
print(导出文件路径 %s\%s.xlsx%(path,exportname))os.chdir(%s%path)
inwb openpyxl.Workbook()
inwb.create_sheet(西红柿真帅,0)
sheetnameinwb.get_sheet_names()
inwb.remove_sheet(inwb.get_sheet_by_name(sheetname[1]))
wsinwb.get_sheet_by_name(sheetname[0])
for i in range(len(result)):for j in range(len(result[0])):ws.cell(row i1 , column j1).value result[i][j]
inwb.save(%s.xlsx%exportname)print(success !!!)
数据质量调研搞完了发给领导~ 领导真有眼光⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄ 【送实体书环节】 本书轻理论重实践目的是用低的学习成本让读者快速上手Python编程与应用开发。 本书既适合非计算机专业出身的编程初学者也适合即将走上工作岗位的广大毕业生或已经有编程经验但想转行做Python应用开发的专业人士。 【中奖人从以下书单任选一本】 1 人工智能数学基础 重点推荐 2 硬件十万个为什么无源器件篇 3 Python最优化算法实战 4 Python Web开发从入门到精通 5 Python自动化测试实战 6 Python编程完全自学教程 7 数据结构和算法基础Python语言实现 8 机器学习入门基于数学原理的Python实战 9 机器学习与深度学习算法基础 10 机器学习线性代数基础Python语言描述 11 Python编程宝典迅速提高编程水平的100个关键技能
参与方式关注文末公众号回复【送书】 开奖时间20210930
通知方式微CSDN发文、blink、私聊你总有人联系不上我很郁闷 添加文末公众号「信息技术智库」 硬核资料关注即可领取PPT模板、简历模板、行业经典书籍PDF。 技术互助技术群大佬指点迷津你的问题可能不是问题求资源在群里喊一声。 面试题库由技术群里的小伙伴们共同投稿热乎的大厂面试真题持续更新中。 知识体系含编程语言、算法、大数据生态圈组件Mysql、Hive、Spark、Flink、数据仓库、前端等。 送书抽奖丨技术互助丨粉丝福利