IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 【送书啦】Python操作Mysql(连接、数据探查、写Excel) -> 正文阅读

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

🍅 作者主页:不吃西红柿?

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

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

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

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

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


目录

一、缘起

二、转机

三、成果

四、过程?

1、导包

2、连接数据库

3、数据探查

4、写execl


一、缘起

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

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

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

二、转机

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

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

?既如此,何不用python?

于是乎,奋笔疾书!

?三、成果

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

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

四、过程

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

代码大致分为4个部分:

1、导包

#coding=utf-8
from __future__ import division
import 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:
    pass

m=1
result=[]
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+1
print(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)、数据仓库、前端等。

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

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:56:57  更:2021-10-01 16:57:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:17:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码