摘要:作者主頁不吃西紅柿不吃西紅柿簡介博客專家核心組成員歡迎點(diǎn)贊收藏評論粉絲專屬福利簡歷模板模板知識體系面試題庫技術(shù)互助。知識體系含編程語言算法大數(shù)據(jù)生態(tài)圈組件數(shù)據(jù)倉庫前端等。
? 作者主頁:不吃西紅柿?
? 簡介:CSDN博客專家?、HDZ核心組成員? 歡迎點(diǎn)贊、收藏、評論
? 粉絲專屬福利:簡歷模板、PPT模板、知識體系、面試題庫、技術(shù)互助。直接去文末領(lǐng)取
? 包郵送書:關(guān)注文末公眾號回復(fù)「送書」
公號「信息技術(shù)智庫」知識內(nèi)容如下:
本期重點(diǎn):使用python探查mysql數(shù)據(jù)庫,數(shù)據(jù)分析類人員必備
目錄
事情是這樣的,領(lǐng)導(dǎo)安排一個活,詳細(xì)探查xx公司的數(shù)據(jù)治理,包括數(shù)據(jù)源,數(shù)據(jù)流,數(shù)據(jù)質(zhì)量。
PS.工作量非常大,費(fèi)勁整理出質(zhì)量報告!
?好的,沒問題: 嘴上逞強(qiáng),心在滴血!
我一想,數(shù)據(jù)探查不就是看這些指標(biāo):
表名,列名,空值數(shù)量,總數(shù)據(jù)量,空值率,字符類型,字段長度,備注,主鍵,權(quán)限
?既如此,何不用python?
于是乎,奮筆疾書!
?說干就干,最終用python 快速完成數(shù)據(jù)治理調(diào)研,而我,樓下遛彎去了~
但是,活可沒馬虎,給大家康康效果:
為了讓更多有數(shù)據(jù)處理需求的小伙伴,高效搞定工作,我覺得把相關(guān)代碼完全開源,當(dāng)然,也有提升的地方,希望小伙伴在評論區(qū)指指點(diǎn)點(diǎn)。
代碼大致分為4個部分:
#coding=utf-8from __future__ import divisionimport os,openpyxl,pymysql as MySQL
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("連接成功!??!")
#tab=["xxxxxx","bbbbbb"] #指定探索的表名tab=[]if len(tab)==0 : quary="""show tables; """ ret=cur.execute(quary) ret=cur.fetchall() #結(jié)果是二層tuple for i in ret: tab.append(i[0]) print("表數(shù)量: %s"%len(tab)) print("表list: %s"%tab)else: passm=1result=[]result.append(["表名","列名","空值數(shù)量","總數(shù)據(jù)量","空值率","字符類型","字段長度","備注","主鍵","權(quán)限"])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()
path="D://export" # 輸入文件路徑print("請輸入文件名,如不輸入,默認(rèn)文件名export: ")exportname=input()if exportname=="": exportname="export"if os.path.exists("%s/%s.xlsx"%(path,exportname)): os.remove("%s/%s.xlsx"%(path,exportname))print("導(dǎo)出文件路徑: %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 !!!")
數(shù)據(jù)質(zhì)量調(diào)研搞完了,發(fā)給領(lǐng)導(dǎo)~
?領(lǐng)導(dǎo)真有眼光?。?(? ???ω??? ?)?
【送實(shí)體書環(huán)節(jié)】
本書輕理論,重實(shí)踐,目的是用低的學(xué)習(xí)成本,讓讀者快速上手Python編程與應(yīng)用開發(fā)。
本書既適合非計算機(jī)專業(yè)出身的編程初學(xué)者,也適合即將走上工作崗位的廣大畢業(yè)生,或已經(jīng)有編程經(jīng)驗(yàn)但想轉(zhuǎn)行做Python應(yīng)用開發(fā)的專業(yè)人士。
【中獎人從以下書單任選一本】
1 人工智能數(shù)學(xué)基礎(chǔ) 重點(diǎn)推薦
2 硬件十萬個為什么(無源器件篇)
3 Python最優(yōu)化算法實(shí)戰(zhàn)
4 Python Web開發(fā)從入門到精通
5 Python自動化測試實(shí)戰(zhàn)
6 Python編程完全自學(xué)教程
7 數(shù)據(jù)結(jié)構(gòu)和算法基礎(chǔ)Python語言實(shí)現(xiàn)
8 機(jī)器學(xué)習(xí)入門:基于數(shù)學(xué)原理的Python實(shí)戰(zhàn)
9 機(jī)器學(xué)習(xí)與深度學(xué)習(xí)算法基礎(chǔ)
10 機(jī)器學(xué)習(xí)線性代數(shù)基礎(chǔ):Python語言描述
11 Python編程寶典:迅速提高編程水平的100個關(guān)鍵技能
參與方式:關(guān)注文末公眾號回復(fù)【送書】
?開獎時間:20210930
通知方式:微,CSDN發(fā)文、blink、私聊你(總有人聯(lián)系不上,我很郁悶)
添加文末公眾號「信息技術(shù)智庫」:
? 硬核資料:關(guān)注即可領(lǐng)取PPT模板、簡歷模板、行業(yè)經(jīng)典書籍PDF。
? 技術(shù)互助:技術(shù)群大佬指點(diǎn)迷津,你的問題可能不是問題,求資源在群里喊一聲。
? 面試題庫:由技術(shù)群里的小伙伴們共同投稿,熱乎的大廠面試真題,持續(xù)更新中。
? 知識體系:含編程語言、算法、大數(shù)據(jù)生態(tài)圈組件(Mysql、Hive、Spark、Flink)、數(shù)據(jù)倉庫、前端等。
??送書抽獎丨技術(shù)互助丨粉絲福利??
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/121552.html
動畫是使可視化更具吸引力和用戶吸引力的好方法。它幫助我們以有意義的方式展示數(shù)據(jù)可視化。Python 幫助我們使用現(xiàn)有的強(qiáng)大 Python 庫創(chuàng)建動畫可視化。Matplotlib是一個非常流行的數(shù)據(jù)可視化庫,通常用于數(shù)據(jù)的圖形表示以及使用內(nèi)置函數(shù)的動畫。 直接跳到末尾 去評論區(qū)領(lǐng)書 ? 在 Python 中創(chuàng)建條形圖追趕動畫(評論區(qū)送書) ? 方法一:使用 pause() 函數(shù)? 方法二:使用 F...
摘要:由設(shè)計,作為編程語言的繼承者,于年首次發(fā)布。表達(dá)式表達(dá)式是編程語言中的語法實(shí)體,可以對其進(jìn)行評估以確定其值。它是編程語言解釋和計算以產(chǎn)生值的常量變量函數(shù)和運(yùn)算符的組合。它在年年年和年被評為年度編程語言,是唯一四次獲得該獎項的語言。 ...
摘要:回到目錄評論區(qū)抽粉絲送書啦歡迎大家在評論區(qū)提出意見和建議抽兩位幸運(yùn)兒送書,實(shí)物圖如下開發(fā)從入門到精通內(nèi)容簡介案例教學(xué)。 ? 作者主頁:海擁 ? 作者簡介:?CSDN...
摘要:為我們提供了許多內(nèi)置函數(shù),例如并提供了創(chuàng)建用戶定義函數(shù)的能力。會將該變量視為函數(shù)級作用域中的局部變量?;氐侥夸浿泻瘮?shù)的用途是什么是中的內(nèi)置函數(shù)之一。請注意,這種類型的參數(shù)語法不允許將命名參數(shù)傳遞給函數(shù)。函數(shù)接受一個稱為的可選參數(shù)。 ...
閱讀 926·2021-09-29 09:35
閱讀 1266·2021-09-28 09:36
閱讀 1540·2021-09-24 10:38
閱讀 1088·2021-09-10 11:18
閱讀 647·2019-08-30 15:54
閱讀 2514·2019-08-30 13:22
閱讀 1977·2019-08-30 11:14
閱讀 712·2019-08-29 12:35