资讯专栏INFORMATION COLUMN

【送书啦】Python操作Mysql(连接、数据探查、写Excel)

Ilikewhite / 698人阅读

摘要:作者主页不吃西红柿不吃西红柿简介博客专家核心组成员欢迎点赞收藏评论粉丝专属福利简历模板模板知识体系面试题库技术互助。知识体系含编程语言算法大数据生态圈组件数据仓库前端等。

? 作者主页:不吃西红柿 

? 简介:CSDN博客专家?、HDZ核心组成员? 欢迎点赞、收藏、评论

? 粉丝专属福利:简历模板、PPT模板、知识体系、面试题库、技术互助。直接去文末领取

? 包邮送书:关注文末公众号回复「送书

公号「信息技术智库」知识内容如下:

本期重点:使用python探查mysql数据库,数据分析类人员必备


目录

一、缘起

二、转机

三、成果

四、过程 

1、导包

2、连接数据库

3、数据探查

4、写execl


一、缘起

事情是这样的,领导安排一个活,详细探查xx公司的数据治理,包括数据源,数据流,数据质量。

PS.工作量非常大,费劲整理出质量报告!

 好的,没问题: 嘴上逞强,心在滴血!

二、转机

我一想,数据探查不就是看这些指标:

表名,列名,空值数量,总数据量,空值率,字符类型,字段长度,备注,主键,权限

 既如此,何不用python?

于是乎,奋笔疾书!

 三、成果

 说干就干,最终用python 快速完成数据治理调研,而我,楼下遛弯去了~

但是,活可没马虎,给大家康康效果:

四、过程

为了让更多有数据处理需求的小伙伴,高效搞定工作,我觉得把相关代码完全开源,当然,也有提升的地方,希望小伙伴在评论区指指点点。

代码大致分为4个部分:

1、导包

#coding=utf-8from __future__ import divisionimport os,openpyxl,pymysql as MySQL

2、连接数据库

print("开始连接ing")try:    conn=MySQL.connect(host="127.0.0.1",port=3306,user="root",passwd="root",db="tomato",charset="utf8")    #charset解决字符乱码except:    print("连接失败!")cur = conn.cursor()print("连接成功!!!")

3、数据探查

#tab=["xxxxxx","bbbbbb"]  #指定探索的表名tab=[]if len(tab)==0 :    quary="""show tables; """    ret=cur.execute(quary)    ret=cur.fetchall()  #结果是二层tuple    for i in ret:         tab.append(i[0])    print("表数量: %s"%len(tab))    print("表list: %s"%tab)else:    passm=1result=[]result.append(["表名","列名","空值数量","总数据量","空值率","字符类型","字段长度","备注","主键","权限"])for i in tab:    if m==100:        break        print(i)    print("第" + str(m) + "个表")    quary1="select count(*)  from  %s"%i    retsc=cur.execute(quary1)    retsc=cur.fetchall()    quary2="""select  COLUMN_NAME from Information_schema.columns  where table_Name = "%s";"""%i    ret1=cur.execute(quary2)    ret1=cur.fetchall()    for col in ret1:        ll=[]        quary3="""select count(*)  from  %s  AS AAA where  AAA.%s  is null; """%(i,col[0])        print(quary3)        ret2=cur.execute(quary3)        ret2=cur.fetchall()        quary4="""SELECT  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)        re4=cur.execute(quary4)        re4=cur.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)    m=m+1print(result)cur.close()conn.close()

4、写execl

path="D://export"   # 输入文件路径print("请输入文件名,如不输入,默认文件名export:  ")exportname=input()if exportname=="":    exportname="export"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)sheetname=inwb.get_sheet_names()inwb.remove_sheet(inwb.get_sheet_by_name(sheetname[1]))ws=inwb.get_sheet_by_name(sheetname[0])for i in range(len(result)):    for j in range(len(result[0])):        ws.cell(row = i+1 , column = j+1).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)、数据仓库、前端等。

??送书抽奖丨技术互助丨粉丝福利??

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/121552.html

相关文章

  • ❤️【python入门项目】在 Python 中创建条形图追赶动画(评论区送书)❤️

    动画是使可视化更具吸引力和用户吸引力的好方法。它帮助我们以有意义的方式展示数据可视化。Python 帮助我们使用现有的强大 Python 库创建动画可视化。Matplotlib是一个非常流行的数据可视化库,通常用于数据的图形表示以及使用内置函数的动画。 直接跳到末尾 去评论区领书 ? 在 Python 中创建条形图追赶动画(评论区送书) ? 方法一:使用 pause() 函数? 方法二:使用 F...

    h9911 评论0 收藏0
  • 什么是 Python 编程语言?

    摘要:由设计,作为编程语言的继承者,于年首次发布。表达式表达式是编程语言中的语法实体,可以对其进行评估以确定其值。它是编程语言解释和计算以产生值的常量变量函数和运算符的组合。它在年年年和年被评为年度编程语言,是唯一四次获得该奖项的语言。 ...

    1treeS 评论0 收藏0
  • 100 个基本 Python 面试问题第二部分(41-60)

    摘要:回到目录评论区抽粉丝送书啦欢迎大家在评论区提出意见和建议抽两位幸运儿送书,实物图如下开发从入门到精通内容简介案例教学。 ? 作者主页:海拥 ? 作者简介:?CSDN...

    Tikitoo 评论0 收藏0
  • 100 个基本 Python 面试问题第二部分(21-40)

    摘要:为我们提供了许多内置函数,例如并提供了创建用户定义函数的能力。会将该变量视为函数级作用域中的局部变量。回到目录中函数的用途是什么是中的内置函数之一。请注意,这种类型的参数语法不允许将命名参数传递给函数。函数接受一个称为的可选参数。 ...

    2450184176 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<