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