摘要:作者主頁不吃西紅柿不吃西紅柿簡介博客專家核心組成員歡迎點贊收藏評論粉絲專屬福利簡歷模板模板知識體系面試題庫技術互助。知識體系含編程語言算法大數據生態圈組件數據倉庫前端等。
? 作者主頁:不吃西紅柿?
? 簡介:CSDN博客專家?、HDZ核心組成員? 歡迎點贊、收藏、評論
? 粉絲專屬福利:簡歷模板、PPT模板、知識體系、面試題庫、技術互助。直接去文末領取
? 包郵送書:關注文末公眾號回復「送書」
公號「信息技術智庫」知識內容如下:
本期重點:使用python探查mysql數據庫,數據分析類人員必備
目錄
事情是這樣的,領導安排一個活,詳細探查xx公司的數據治理,包括數據源,數據流,數據質量。
PS.工作量非常大,費勁整理出質量報告!
?好的,沒問題: 嘴上逞強,心在滴血!
我一想,數據探查不就是看這些指標:
表名,列名,空值數量,總數據量,空值率,字符類型,字段長度,備注,主鍵,權限
?既如此,何不用python?
于是乎,奮筆疾書!
?說干就干,最終用python 快速完成數據治理調研,而我,樓下遛彎去了~
但是,活可沒馬虎,給大家康康效果:
為了讓更多有數據處理需求的小伙伴,高效搞定工作,我覺得把相關代碼完全開源,當然,也有提升的地方,希望小伙伴在評論區指指點點。
代碼大致分為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() #結果是二層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()
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://specialneedsforspecialkids.com/yun/121552.html
動畫是使可視化更具吸引力和用戶吸引力的好方法。它幫助我們以有意義的方式展示數據可視化。Python 幫助我們使用現有的強大 Python 庫創建動畫可視化。Matplotlib是一個非常流行的數據可視化庫,通常用于數據的圖形表示以及使用內置函數的動畫。 直接跳到末尾 去評論區領書 ? 在 Python 中創建條形圖追趕動畫(評論區送書) ? 方法一:使用 pause() 函數? 方法二:使用 F...
摘要:由設計,作為編程語言的繼承者,于年首次發布。表達式表達式是編程語言中的語法實體,可以對其進行評估以確定其值。它是編程語言解釋和計算以產生值的常量變量函數和運算符的組合。它在年年年和年被評為年度編程語言,是唯一四次獲得該獎項的語言。 ...
摘要:回到目錄評論區抽粉絲送書啦歡迎大家在評論區提出意見和建議抽兩位幸運兒送書,實物圖如下開發從入門到精通內容簡介案例教學。 ? 作者主頁:海擁 ? 作者簡介:?CSDN...
摘要:為我們提供了許多內置函數,例如并提供了創建用戶定義函數的能力。會將該變量視為函數級作用域中的局部變量。回到目錄中函數的用途是什么是中的內置函數之一。請注意,這種類型的參數語法不允許將命名參數傳遞給函數。函數接受一個稱為的可選參數。 ...
閱讀 914·2021-09-29 09:35
閱讀 1258·2021-09-28 09:36
閱讀 1528·2021-09-24 10:38
閱讀 1074·2021-09-10 11:18
閱讀 637·2019-08-30 15:54
閱讀 2504·2019-08-30 13:22
閱讀 1969·2019-08-30 11:14
閱讀 705·2019-08-29 12:35