為什么要學會使用Excel在機器學習模型的建立中,不得不借助于Excel強大的統(tǒng)計分析能力,這個時候就牽涉到了如何將python直接處理得到的數(shù)據(jù)存入excel表格當中以及獲取表格的數(shù)據(jù)進行分析,簡單的說,學會使用Python操作Excel文件后,可以運用到機器學習之中,也可以讓平常生活中繁瑣的工作自動化處理。 Excel的基本使用Python處理Excel的包是openpyxl,如果你是直接下載的anaconda安裝的Python庫,那么下載的時候,自帶的就已經(jīng)安裝了openpyxl,如果不是,也可以直接在cmd之中,使用pip install openpyxl安裝。 安裝完成之后,我們應該了解一下Excel的組成部分,如下圖所示: 看到上圖就應該知道,首先,我們應該獲取Excel文件: wb=openpyxl.load_workbook('1234.xlsx') 對于已經(jīng)有Excel目標文件來說,使用以上方法,就可以直接獲取excel文件,如果你想重新創(chuàng)建一個全新的Excel文件,不妨試試以下方式:
已經(jīng)獲取了Excel,但其實我們的數(shù)據(jù)都在一個一個的表中,如下圖所示: 一個Excel文件中可以有多個表,一般而言操作的都是第一個表,而獲取表的方法也有很多,比如:
以上兩種方式都是獲取第一個表,要是我們使用wb=openpyxl.Workbook()方式,新創(chuàng)建的一個Excel呢?我們需要創(chuàng)建一個操作的表格:
當我們獲取表格之后,就可以快樂的操作我們的數(shù)據(jù)了。 比如這個時候,你想獲取表格中的A1單元格中的文本,就可以使用如下方法: sheet['A1'].value 以上是獲取單個單元格的數(shù)據(jù),現(xiàn)在我有一個需求,要遍歷某個表格中的所有數(shù)據(jù),該怎么操作呢?這里我們先假如我有如下表格: 那么遍歷起來的代碼如下:
上面是逐行遍歷,首先我們獲取Excel文件,然后獲取當中的第一個表格,然后通過獲取行數(shù),以及列數(shù)進行遍歷,openpyxl獲取行數(shù)的方法為sheet.iter_rows(),獲取列數(shù)可以直接通過當前行獲取也就是for cell in row,代碼簡潔明了,實現(xiàn)效果如下: 那么怎么修改數(shù)據(jù)呢?我們先來看看代碼:
這三種方式,都可以修改Excel某個單元格數(shù)據(jù),同時也可以通過前兩種方式獲取到這個單元格的值,python的優(yōu)點就是這么簡單明了。 經(jīng)過這些操作之后,我們還有一個事情要做,那就是如果保存我們創(chuàng)建,或者修改過后的Excel,其實也很簡單,一句話就可以做到,代碼如下:
這樣就將操作的數(shù)據(jù),保存到當前目錄之下的1234.xlsx中,同樣寫絕對路徑也行。 Excel的樣式在平常的生活當中,Excel表格并不僅僅是寫入數(shù)據(jù),修改數(shù)據(jù),保存數(shù)據(jù)這樣簡單的操作,其實還有如果讓Excel變的更加美觀,比如修改某些字體,邊框樣式等等等等。 字體樣式那好,我們先來說說如何修改字體這樣的樣式,我們openpyxl里面有專門的字體樣式,可以通過以下方式導入,使用的代碼如下:
這里我們先引入了Excel中的字體樣式,然后通過構(gòu)造函數(shù),創(chuàng)建了一個樣式,比如這里創(chuàng)建的字體為微軟雅黑,字體大小為10,不加粗,沒有斜體,沒有下劃線,沒有刪除線,顏色為黑色。 盡然我們創(chuàng)建了一個樣式,接下里就是將樣式設置到單元格中去,比如將剛才的樣式設置到表格11單元格中,以下兩種方式都行,代碼如下:
填充樣式說完字體樣式,第二個運用最多的就是填充樣式,比如給某個單元格填充背景色,或者填充圖案等等等等,我們先來看看代碼的操作方式:
這段代碼實現(xiàn)的樣式如下: 可以看到它的圖案類型為darkUp,開始顏色行色,結(jié)束顏色為紅色,紅黃相間的格柵化樣式填充,當然它的圖案類型還有很多,以下都是:
具體用到哪個,還要根據(jù)你的需求自由的選擇,重點需要說明的是,當圖案為solid時,默認只填充start_color顏色,也就是黃色,有興趣的可以試試。 邊框樣式第三個要介紹的就是邊框樣式,邊框樣式在實際的工作中,可以說也是用的比較多的,了解一下對于實際的工作還是有好處的,操作代碼如下:
上面設置了上下左右四個邊框的顏色以及樣式,這里我都設置為虛線樣式,顏色隨機抽取了四個比較深的顏色,實現(xiàn)的效果如下圖所示(上紅,下綠,左紫,右黑): 當然邊框還有很多參數(shù)的,如果想運用的更多更廣,可以參考openpyxl開發(fā)文檔,博主這里只介紹最常用的邊框樣式。 對齊樣式最后一個樣式為對齊樣式,相對于上面三種樣式來說,這個對齊樣式每次幾乎都用到,現(xiàn)在我們先來弄一個單元格居中對齊,代碼如下:
這里我們設置了對齊樣式為水平居中,垂直居中,文字旋轉(zhuǎn)角度為0(最多可以旋轉(zhuǎn)180°),縮進為0,比如旋轉(zhuǎn)90度,文字就變成了如下圖所示的樣式: 當然這種對齊樣式還有許多其他參數(shù),但用的最多的也就是這些,如果想了解其他的請前往openpyxl開發(fā)文檔了解最詳細的參數(shù)。這里就不做過多的贅述了。 Excel公式鏈接公式樣式說完了,我們還需介紹一下Excel公式的應用,比如我們有些Excel表格中有鏈接,就需要用公式把鏈接設置成可以點擊的超鏈接模式,同樣比如計算某些值的時候,也會用到Excel公式。我們先來講解以下如何讓URL鏈接可以點擊,代碼如下: sheet.cell(6,3).value='=HYPERLINK('%s','%s')' % ('https://www.baidu.com', '百度一下') 上面代碼理解起來很簡單,就是我要在第六行第三列輸入百度一下,且百度一下可以點擊跳轉(zhuǎn)到指定的網(wǎng)頁之中(第一個參數(shù)就是需要跳轉(zhuǎn)的地址)。 這里其實就是excel中的公式,當然你也可以設置某個目錄下的exe文件,點擊后直接執(zhí)行exe,也可以設置跳轉(zhuǎn)到某個單元格,比如想點擊后跳轉(zhuǎn)到A1,代碼如下:
計算公式操作現(xiàn)在我還有一個需求,比如我要計算下面表中A1到E1這5個數(shù)的和,在Excel應該怎么操作呢? 其實也和上面一樣,只要你知道Excel中的計算和公式,就可以直接套用到代碼中,這樣哪怕是編程小白,也基本可以掌握公式的應用規(guī)則,因為只要會Excel的都會知道,代碼如下: sheet['F1']='=SUM(A1:E1)' Excel單元格的合并與拆分Excel估計已經(jīng)介紹的差不多了,不過博主剛剛想起來,應該還有一個常用的操作方式,就是合并單元格,這里我們同樣先來看一段代碼:
合并也是操作表結(jié)構(gòu),這里合并剛上面那個表的數(shù)字,可以看到我們合并了A1到E1的所有單元格,同時,合并后的單元格顯示第一個單元格內(nèi)容。 熟話說得好,有合并就有拆分,同樣我們也需要拆分單元格,那這樣,我們就把先合并的單元格,在拆分成原來的樣子,代碼如下: sheet.unmerge_cells('A1:E1') 很簡單,代碼前面加一個un就行,但這里有一個需要注意的地方,剛合并單元格,默認填充的是第一個單元格中的數(shù)據(jù),但拆分單元格,并不會自動填充數(shù)據(jù),原先有的整個數(shù)據(jù)顯示在第一個單元格之中,而其他拆分出來的單元格,不會顯示任何數(shù)據(jù)。 總結(jié)了這么多,相信對經(jīng)常使用Excel的小伙伴應該會有所幫助,如果寫的還可以記得給點個贊! |
|
來自: 暗夜精靈fdznnm > 《Python》