張小白帶你跟著小Mi老師學習用Python操作Excel
MindSpore團隊的小Mi老師在MindSpore論壇有個干貨系列——【跟著小Mi一起機器學習吧!】
張小白特意整理了一下,到目前為止,有以下內容:
【跟著小Mi一起機器學習吧!】2021.5.18 介紹篇 https://bbs.huaweicloud.com/forum/thread-128661-1-1.html
【跟著小Mi一起機器學習吧!】2021.5.26 那些我們快要遺忘的線性代數知識點 https://bbs.huaweicloud.com/forum/thread-130462-1-1.html
【跟著小Mi一起機器學習吧!】2021.5.29 單變量線性回歸(一)https://bbs.huaweicloud.com/forum/thread-131009-1-1.html
【跟著小Mi一起機器學習吧!】2021.6.3 單變量線性回歸(二)https://bbs.huaweicloud.com/forum/thread-131701-1-1.html
【跟著小Mi一起機器學習吧!】2021.6.9 多變量線性回歸(一)https://bbs.huaweicloud.com/forum/thread-132434-1-1.html
【跟著小Mi一起機器學習吧!】2021.6.16 多變量線性回歸(二)https://bbs.huaweicloud.com/forum/thread-133107-1-1.html
【跟著小Mi一起機器學習吧!】2021.6.22 邏輯回歸(一)https://bbs.huaweicloud.com/forum/thread-133654-1-1.html
【跟著小Mi一起機器學習吧!】2021.6.28 邏輯回歸(二)https://bbs.huaweicloud.com/forum/thread-135362-1-1.html
【跟著小Mi一起機器學習吧!】2021.7.9 神經網絡表述(一)https://bbs.huaweicloud.com/forum/thread-138471-1-1.html
【跟著小Mi一起機器學習吧!】2021.7.13 神經網絡表述(二)https://bbs.huaweicloud.com/forum/thread-139405-1-1.html
【跟著小Mi一起機器學習吧!】2021.7.23 神經網絡的學習(上)https://bbs.huaweicloud.com/forum/thread-142545-1-1.html
【跟著小Mi一起機器學習吧!】2021.7.31 神經網絡的學習(下)https://bbs.huaweicloud.com/forum/thread-144685-1-1.html
【跟著小Mi一起機器學習吧!】2021.8.6 關于應用機器學習時的一些建議 https://bbs.huaweicloud.com/forum/thread-146476-1-1.html
【跟著小Mi一起機器學習吧!】2021.8.13 機器學習系統的設計 https://bbs.huaweicloud.com/forum/thread-147204-1-1.html
【跟著小Mi一起機器學習吧!】2021.8.20 支持向量機(上)https://bbs.huaweicloud.com/forum/thread-148577-1-1.html
【跟著小Mi一起機器學習吧!】2021.8.28 支持向量機(中)https://bbs.huaweicloud.com/forum/thread-150652-1-1.html
【跟著小Mi一起機器學習吧!】2021.9.3 支持向量機(下)https://bbs.huaweicloud.com/forum/thread-152321-1-1.html
【跟著小Mi一起機器學習吧!】2021.9.17 聚類算法 https://bbs.huaweicloud.com/forum/thread-155839-1-1.html
張小白相信,小Mi老師還會接著寫下去的,所以想學機器學習的人可以關注下。
當然,小Mi老師最近發了一個Python操作excel的帖子( https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=154274 ),聽說照著帖子去實踐還會有抽獎,這點首先張小白肯定自己不會拉下,其次也不會讓其他的獎品愛好者拉下,所以就讓張小白跟著小Mi老師的節奏開始實操吧!
張小白的思路是,先在機器上裝好JupyterLab環境,然后在JupyterLab環境下操作即可。有JupyterLab環境的人可以跳過前面的步驟直接進JupyterLab去操作Excel。
按照 《張小白教你在Windows上使用JupyterLab體驗MindSpore1.2.0 》( https://bbs.huaweicloud.com/blogs/260796 )的方式裝好mindspore 1.3.0和Jupyter Lab:
安裝Anaconda
(參見鏈接 第一步:安裝Anaconda)
創建conda環境,順便安裝下mindspore
(參見鏈接第二步:使用conda安裝MindSpore)其實也可以不裝mindspore。。
安裝jupyter和jupyterlab
。。。
。。。
。。。
創建一個jupyter lab運行的目錄 D:\ipynb
進入該目錄,啟動jupyter lab:
瀏覽器打開上圖箭頭所指的鏈接,進入JupyterLab界面:
點擊箭頭所指的Python3圖標,新建一個Notebook
先驗證下mindspore安裝:
!python -c "import mindspore;mindspore.run_check()"
好像張小白多此一舉了,直接import mindspore;mindspore.run_check()好像也行。。。
這個時候會報一個錯,顯然這個somas_meta目錄不存在。所以可以在ipynb目錄下創建這個目錄:
重新執行這個cell
仍然報了個找不到指定模塊的錯,張小白咨詢了下mindspore的專家,答復說這是1.3版本的BUG,在1.4版本修復了,所以張小白也不必多管他,反正這次并沒有用到MindSpore(只是張小白在夾帶私貨)
小Mi老師的帖子會讓張小白打開另一個文檔 :
《可能是全網最完整的 Python 操作 Excel庫總結!》( https://mp.weixin.qq.com/s?__biz=Mzg5OTU3NjczMQ==&mid=2247512088&idx=1&sn=64dd609a958d00432dd37484c0d0c382&chksm=c053d6ecf7245ffa39ad6e38bebcff03452271886a8722a5b9ae5f822b3266cda7451fa2a2fc&scene=178&cur_album_id=1732621983021858819#rd )
仔細閱讀后,發現需要pip安裝一些excel相關的包,那就在這里安裝吧:
!pip install xlrd -i https://pypi.tuna.tsinghua.edu.cn/simple !pip install xlwt -i https://pypi.tuna.tsinghua.edu.cn/simple !pip install xlutils -i https://pypi.tuna.tsinghua.edu.cn/simple !pip install xlwings -i https://pypi.tuna.tsinghua.edu.cn/simple !pip install XlsxWriter -i https://pypi.tuna.tsinghua.edu.cn/simple !pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple !pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
然后需要import一些excel的庫(其實也可以用的時候再import,但是先一股腦兒的import其實也沒事兒吧。。。)
import xlrd import xlwt import xlwings as xw import xlsxwriter import openpyxl import pandas as pd
張小白拿出當年研究過的CANN訓練營第二期的獎品價格的表格文件price.xlsx:(至于為啥曾經要研究請不要猜)
然后執行下列腳本:
from openpyxl import load_workbook workbook = load_workbook( filename = "price.xlsx") print(workbook.sheetnames) #sheet = workbook.active sheet=workbook['工作表1'] print(sheet.dimensions) cell1 = sheet["C5"] print("C5:" , cell1.value) cell2 = sheet["A7"] print("A7:", cell2.value)
上面的語句意思大概如下:
打開一個叫做price.xlsx的文件,找到激活的sheet(或者sheet名稱為 工作表1的sheet),看一下這個表格的大小,然后打印表格的C5欄位和A7欄位的內容。
運行的結果如下:
看來,excel中特定的網格內容都讀出來了。
張小白把price.xlsx文件復制了一份,改名為price2.xlsx,并且加了一列:(亂寫的)
那么,我們來一次讀取多個文件:
import re import os import pandas as pd files = [ i for i in os.listdir("./") if i.endswith("xlsx")] for filename in files: print(filename) print(pd.read_excel(filename))
這里是查看目錄下所有帶xlsx的文件,循環打印出文件名稱和excel文件的內容。
此時需要注意,如果你正在編輯一個excel文件,系統會在同樣的目錄下生成個不可見的xlsx文件,這樣有可能這個語句會報錯。記得把excel關閉后再執行就行了。
關閉excel后的執行結果如下:
(請記住第一列是高達基地XXX)
再來試試改寫excel文件,使用drop和to_excel:
for filename in files: file=pd.read_excel(filename) filenew=file.drop(file.index[0]) pd.DataFrame.to_excel(filenew,str(filename),na_rep='.',index=False)
執行完畢,好像沒啥動靜:
但是再打開兩個excel文件看看:
高達基地已經不見了。。。(但是不知道為啥,第一列多了個Unnamed: 0)
這就成功地完成了小Mi老師的作業。
其實Python操作Excel的內容還有很多,如果下次用到的時候,記得從這里找到相關的資料哦。。。多跟著小Mi老師學學,一定會有收獲的。。
(全文完,謝謝閱讀)
Python
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。