我在12w+的Python庫(kù)中,發(fā)現(xiàn)了讓Excel快到起飛的秘密......
Amber | 作者
圖片源自網(wǎng)絡(luò)
在這篇文章里,小編向大家介紹了Excel在數(shù)據(jù)分析中的妙用。不知大家在看完后,有沒(méi)有親自動(dòng)手去體驗(yàn)下呢?有沒(méi)有遇到什么問(wèn)題呢?

雖說(shuō)Excel在處理小批量數(shù)據(jù)時(shí)的優(yōu)勢(shì)顯而易見(jiàn),但軟件終究不是萬(wàn)能的,完全倚靠這單單一個(gè)軟件,總會(huì)有翻車(chē)的那天......

心情不好+軟件無(wú)響應(yīng),簡(jiǎn)直是成年人的崩潰瞬間了...
同樣,你肯定還遇到過(guò)這兩種情況:
軟件沒(méi)問(wèn)題,自己有問(wèn)題,日?qǐng)?bào)操作太多,常常因?yàn)?strong style="box-sizing: border-box;">粗心犯錯(cuò)
總是有些避不開(kāi)的重復(fù)工作,直接化身“工具人”,效率大大降低
人無(wú)完人,更何況是個(gè)工具軟件呢?但辦法總比困難多,在發(fā)現(xiàn)了同學(xué)們的困擾后,Amber立刻向愛(ài)數(shù)據(jù)學(xué)院的主講教師張老師進(jìn)行咨詢(xún),張老師指出:
單一Excel軟件的運(yùn)用,早就不能滿(mǎn)足互聯(lián)網(wǎng)時(shí)代的數(shù)據(jù)量了,想要更好的讓機(jī)器代替人工做事,快些實(shí)現(xiàn)Excel自動(dòng)化才是重中之重。
那么如何才能實(shí)現(xiàn)Excel的自動(dòng)化,讓Excel飛起來(lái)呢?
答案就是Python+Excel的組合使用,從而發(fā)揮Excel的最大效用!

1
為什么Python能實(shí)現(xiàn)Excel的自動(dòng)化?
你一定看過(guò)這些廣告...



如今的Python廣告可謂是滿(mǎn)天飛,簡(jiǎn)單整合下市面上常見(jiàn)的Python廣告,你會(huì)發(fā)現(xiàn),學(xué)會(huì)Python,你可以...
輕松繪制高顏值圖表,柱狀圖、折線(xiàn)圖、?;鶊D信手拈來(lái)
掌握數(shù)據(jù)分析技能,全面提升工作效率
爬取網(wǎng)站數(shù)據(jù),擁有更多免費(fèi)資源
......
相信大家看到這些廣告時(shí)都會(huì)有些疑問(wèn):這些說(shuō)的都是真的嗎?Python真有這么神奇?
這里Amber可以準(zhǔn)確的告訴你:這些都是真的。

Python語(yǔ)言有超過(guò)12萬(wàn)個(gè)第三方庫(kù),覆蓋信息技術(shù)幾乎所有領(lǐng)域。這些優(yōu)秀的第三方庫(kù)極大的豐富了Python的功能,使許多功能不必從0編寫(xiě),直接使用現(xiàn)成的即可。
這里Amber向大家介紹幾個(gè)經(jīng)常使用的第三方庫(kù)。
?Numpy—數(shù)據(jù)處理?
NumPy 是一個(gè)為 Python 提供高性能向量、矩陣和高維數(shù)據(jù)結(jié)構(gòu)的科學(xué)計(jì)算庫(kù)。NumPy 基本上是所有使用 Python 進(jìn)行數(shù)值計(jì)算的框架和包的基礎(chǔ),例如 TensorFlow 和 PyTorch,構(gòu)建機(jī)器學(xué)習(xí)模型最基礎(chǔ)的內(nèi)容就是學(xué)會(huì)使用 NumPy 搭建計(jì)算過(guò)程。
?Matplotlib—數(shù)據(jù)可視化?
看到這個(gè)名字有沒(méi)有似曾相識(shí)的感覺(jué)?沒(méi)錯(cuò)它就是受matlab啟發(fā)創(chuàng)建的。它擁有著和matlab一樣強(qiáng)大的面對(duì)過(guò)程的繪圖功能,是高效的數(shù)據(jù)可視化工具。
?Pandas—數(shù)據(jù)分析?
做數(shù)據(jù)分析,如果你不認(rèn)識(shí)Pandas,那你一定是個(gè)假分析師!
Pandas是基于Numpy的專(zhuān)業(yè)數(shù)據(jù)分析工具,可以靈活高效的處理各種數(shù)據(jù)集。Pandas 納入了大量庫(kù)和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。你很快就會(huì)發(fā)現(xiàn),它是使Python成為強(qiáng)大而高效的數(shù)據(jù)分析環(huán)境的重要因素之一。
前面這三個(gè)庫(kù)作為數(shù)據(jù)科學(xué)基礎(chǔ)庫(kù)的三劍客,是大家在做數(shù)據(jù)分析工作中涉及最多的庫(kù)。
而今天Amber還要給大家推薦一個(gè)第三方庫(kù)Openpyxl—Excel文件處理庫(kù),這也是實(shí)現(xiàn)Excel自動(dòng)化的最大秘訣!
?Openpyxl—Excel文件處理庫(kù)?
Openpyxl是一個(gè)用于讀取/編寫(xiě)Excel 2010 xlsx/xlsm/xltx/xltm文件的Python庫(kù)。它是由于缺乏從Python中讀取/編寫(xiě)Office Open XML格式的現(xiàn)有庫(kù)而誕生的。
并且,Openpyxl還是一個(gè)比較綜合的工具,能夠同時(shí)讀取和修改Excel文檔。其他很多的與Excel相關(guān)的項(xiàng)目基本只支持讀或者寫(xiě)Excel一種功能。
2
我們?yōu)槭裁催x擇openpyxl庫(kù)?
為了更好的展現(xiàn)數(shù)據(jù),你還在用鼠標(biāo)瘋狂點(diǎn)點(diǎn)點(diǎn)嗎?

使用openpyxl幾行代碼,也可輕松繪制柱狀圖、折線(xiàn)圖、區(qū)域圖等
想要修改單元格樣式,你還在一個(gè)個(gè)手動(dòng)修改嗎?

那樣太慢了!openpyxl可以按照列或行整體設(shè)置樣式,還可以將樣式進(jìn)行打包,循環(huán)使用。
(部分代碼一覽)
# 將樣式打包命名
sty1 = NamedStyle(name='sty1', font=font1, fill=fill,
??????????????????border=border1, alignment=alignment)
sty2 = NamedStyle(name='sty2', font=font2, border=border2, alignment=alignment)
for?r in range(2, rows+1):
????for?c?in range(1, cols):
????????if?r == 2:
????????????ws.cell(r, c).style = sty1
????????else:
????????????ws.cell(r, c).style = sty2
wb.save('./5a.xlsx')表單太多,想要合并到一起,今天又要加班了......

別急,用openpyxl庫(kù)只需下面這五步,即可輕松解決問(wèn)題,解放你的雙手,告別加班煩惱!
將excel表都放在一個(gè)文件中,遍歷文件夾中的所有文件
將第一步遍歷的excel表中的內(nèi)容讀取,然后保存
新建一個(gè)excel表
在新建的excel表中寫(xiě)入表頭,合并單元格和字體加粗、居中
將第二步中讀取的內(nèi)容寫(xiě)入新建的excel表中,然后保存
看到這里,相信你已經(jīng)了解了openpyxl庫(kù)的強(qiáng)大之處。
其實(shí),openpyxl庫(kù)的功能遠(yuǎn)多于這些,Python操作Excel的用法更是多種多樣。
可以這樣說(shuō),Python就是提升工作效率的寶藏語(yǔ)言,讓你在職場(chǎng)體驗(yàn)「爽」的感覺(jué)!
