【送书啦】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()  #结果是二层tuplefor i in ret:tab.append(i[0])print('表数量: %s'%len(tab))print('表list: %s'%tab)
else:passm=1
result=[]
result.append(['表名','列名','空值数量','总数据量','空值率','字符类型','字段长度','备注','主键','权限'])
for i in tab:if m==100:breakprint(i)print("第" + str(m) + "个表")quary1="select count(*)  from  %s"%iretsc=cur.execute(quary1)retsc=cur.fetchall()quary2='''select  COLUMN_NAME from Information_schema.columns  where table_Name = '%s';'''%iret1=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)、数据仓库、前端等。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

心得14--jsp遍历所有数据标签与转义标签

1. 开发遍历所有类型数据的标签 标签处理类:package com.csdn.web.example;import java.io.IOException;import java.lang.reflect.Array;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import jav…

IBM长文解读人工智能、机器学习和认知计算

来源:人工智能产业链联盟人工智能的发展曾经经历过几次起起伏伏,近来在深度学习技术的推动下又迎来了一波新的前所未有的高潮。近日,IBM 官网发表了一篇概述文章,对人工智能技术的发展过程进行了简单梳理,同时还图文并…

【包邮送书活动】20210928期-开奖通知

【抽奖活动开奖:20210928期】 奖品:包邮实体书 参与方式:CSDN点赞评论收藏文章即可参与、或公众号 开奖通知方式(老是有人中奖联系不上,我很郁闷):朋友圈、blink、私信、发文 抽奖文章链接&…

师生脑信息传递的证据:部分学习还是整体学习?

来源 :华东师范大学心理与认知科学学院官网2018年8月,胡谊课题组的研究论文Interpersonal synchronization of inferior frontal cortices tracks social interactive learning of a song被神经影像国际权威期刊《NeuroImage》接受。该研究采用基于功能性…

第十四章 集合(List)

一、集合框架体系 集合: (1)可以动态保存任意多个对象。 (2)提供了一系列方便的操作对象的方法:add、remove、set、get等。 二、Collection 1. Collection 接口常用方法 (1)add&a…

【文末送书】知识体系目录

🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家🏆、HDZ核心组成员💪、C站周榜第一✌ 🍅 粉丝专属福利:简历模板、PPT模板、知识体系、面试题库、技术互助。直接去文末领取 &#…

《日本制造业白皮书2018》深度解读:非连续创新、现场力、互联工业

日本三大部门共同撰写《日本制造业白皮书》作者:胡权来源: 工业4.0研究院2018年6月14日,日本经济产业省(简称经产省)发布了2018年的《日本制造业白皮书》。要了解日本制造业的情况,就全面性和系统性而言&am…

耗时n年,38页《数据仓库知识体系.pdf》(数据岗位必备)

文末下载PDF 文章很长,前言一定要看 拥有本篇文章,意味着你拥有一本完善的书籍,本篇文章整理了数据仓库领域,几乎所有的知识点,文章内容主要来源于以下几个方面: 源于「数据仓库交流群」资深数据仓库工程…

使用detours实现劫持

第一步:下载detours3.0,安装detours 第二步:构建库文件,nmake编译 第三步:包含库文件和头文件 #include “detours.h” //载入头文件 #pragma comment(lib,”detours.lib”) //表明要使用静态库 第四步&#xf…

Gartner2018新兴技术成熟度曲线:人机界线日益模糊!

来源:云头条摘要:Gartner公司的2018年新兴技术成熟度曲线上35项值得关注的代表性技术揭露了五种明显的新兴技术趋势,它们将模糊人与机器之间的界线。2018年新兴技术成熟度曲线是从2000多种技术筛选出来的。Gartner公司的2018年新兴技术成熟度…

1万字,阿珊学习笔记《前端基础知识》小白入门导读(建议收藏)

🍅 作者:阿珊 🍅 作者简介:95后前端小姐姐,蓝桥签约作者,欢迎点赞、收藏、评论 🍅 粉丝专属福利:知识体系、面试题库、技术互助、简历模板。文末公众号领取 🍅 包邮送书&…

①万字《详解canvas api画图》小白前端入门教程(建议收藏)

🍅 作者:阿珊 🍅 作者简介:95后前端小姐姐,蓝桥签约作者,欢迎点赞、收藏、评论 🍅 粉丝专属福利:知识体系、面试题库、技术互助、简历模板。文末公众号领取 🍅 包邮送书&…

新科技快速指南系列之“量子计算”:历史、现在与未来

来源:36Kr摘要:当计算机变更小或者变更快时,就会发生下一个大事件(Big Things)。量子计算的出现,是为了追求技术史上最大的性能提升。当计算机变更小或者变更快时,就会发生下一个大事件&#xf…

使用C与C++混合编程封装UDP协议

引入头文件&#xff0c;导入lib文件 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <WinSock2.h>#pragma comment(lib,"Ws2_32.lib")2. 在头文件中声明&#xff0c;由于是C中调用C代码需要使用extern关键字extern …

数据倾斜?几招把你安排的板板正正的!

&#x1f345; 作者&#xff1a;不吃西红柿 &#x1f345; 简介&#xff1a;CSDN博客专家&#x1f3c6;、HDZ核心组成员&#x1f4aa;、C站总榜前10名✌ &#x1f345; 粉丝专属福利&#xff1a;文末公号「信息技术智库」回复「资料」领取 &#x1f345; 如觉得文章不错&…

数据解读:资本追逐的14个人工智能细分领域

来源&#xff1a;亿欧摘要&#xff1a; 2014年后&#xff0c;人工智能逐渐成为中国私募市场的“宠儿”&#xff0c;投资风口也逐渐形成。亿欧智库最新推出的《2018中国人工智能投资市场研究报告》中&#xff0c;挖掘了14个行业中最受追捧的细分领域。2012年&#xff0c;深度学习…

【举栗说明】JavaScript作用域,一次性给你总结!

&#x1f345; 作者&#xff1a;阿珊 &#x1f345; 作者简介&#xff1a;95后前端小姐姐&#xff0c;蓝桥签约作者&#xff0c;欢迎点赞、收藏、评论 &#x1f345; 粉丝专属福利&#xff1a;知识体系、面试题库、技术互助、简历模板。文末公众号领取 &#x1f345; 包邮送书&…

反思腾讯:大数据与AI时代的危与机

来源&#xff1a;华尔街见闻摘要&#xff1a;过去十数年&#xff0c;腾讯从一个桌面即时通讯工具进化成为一个庞大的数字帝国&#xff0c;是全球互联网公司失控性进化的先行者和光辉典范。过去十数年&#xff0c;腾讯从一个桌面即时通讯工具进化成为一个庞大的数字帝国&#xf…

poj 1015(dp)

看的解题报告。。http://blog.csdn.net/lyy289065406/article/details/6671105 View Code 1 #include <iostream>2 #include <cstdio>3 #include <cstring>4 #include <algorithm>5 6 using namespace std;7 8 int dp[22][805];9 int path[22][805]; …

cocos2dx实现经典飞机大战

游戏开始层 #ifndef __LayerGameStart_H__ #define __LayerGameStart_H__ #include "cocos2d.h" USING_NS_CC;class LayerGameStart :public CCLayer { public:static CCScene * scene();CREATE_FUNC(LayerGameStart);bool init();void addStartGamePicture();void …