官方推薦:6種Pandas讀取Excel的方法,太方便了~
大家好,這裡是程式設計師晚楓。
很多朋友使用Python中的Pandas這個庫進行Excel的資料處理
,資料處理從巨集觀上分為這麼3個階段:資料讀取、資料處理、資料輸出。
對於大多數新人來說,在資料讀取的這一步就卡住了。
今天我們就來一起學習一下,Pandas官方推薦的6種Excel讀取方式。
本文一共3部分:下載pandas和生成Excel檔案、原始碼解讀、讀取Excel的6種方式。 <br/>如果你是一個熟練的Python使用者,你可以直接跳轉到第3部分。 <br/>如果你是剛接觸Python或者剛接觸Pandas,建議你從第1部分開始看。
下文所有程式碼,都可以 ←左右→ 滑動檢視,也可以直接複製貼上。
1、準備工作
-
首先,你要下載最新版本的
Pandas
庫。這樣你才能使用Pandas,這個不難理解吧? -
其次,你要有一個和本文一樣的
Excel
檔案。為了確保大家和本文的操作統一,建議大家使用和本文同樣的Excel檔案。
怎麼下載Pandas?怎麼獲取Excel?我們都用1行命令來自動搞定
,畢竟我們是自動化辦公社群,如果這些操作不能自動化搞定,那豈不是太過分了?
你直接執行下面這行程式碼,就會生成一個和本文一模一樣的Excel檔案啦~
1行命令安裝:pandas,版本:1.4.0
在你的電腦終端裡面,執行下面這行命令,就可以自動安裝pandas了~
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-office -U
1行命令生成Excel
Excel檔案也不需要你四處下載,之前我們不是介紹了一個功能嘛,這裡是它的用武之地👉:1行程式碼,自動生成帶模擬資料的Excel檔案
以後我們處理Excel的案例和演示,每次都會使用這種自動生成的方法,你當然也可以手動編輯一個,但如果未來我們要學習如何處理10w行的Excel檔案呢?
不論你是手動生成還是百度雲下載,都是一個及其緩慢的過程。
但用下面這個生成方式,模擬一個10w+資料的Excel檔案,也是不過是一瞬間的事情,一定要嘗試一下喲~你會發現新世界的。📱
import office
office.excel.fake2excel(columns=['name', 'company_prefix','job'], rows=5)
在你的PyCharm裡面,執行上面這行程式碼,就可以生成一個如下圖所示👇,和本文一模一樣的Excel檔案啦~
2、pandas原始碼裡說了什麼?
其實學習Pandas很簡單,不用網上東奔西找,所有的程式碼功能,創始人和開發者們都通過註釋的方法寫在原始碼裡了。
如何查詢pandas的原始碼?
下載好pandas以後,我們就開啟pandas的原始碼,看看pandas推薦的讀取方式有哪些。pandas原始碼的路徑:D:\你的python安裝目錄\Lib\site-packages\pandas\
開啟原始碼後,pandas資料夾下有多個目錄結構,如下圖所示,我們要的讀取Excel功能,在pandas\io\excel\_base.py
檔案中的290行-350行
。如下圖所示👇
既然找到了這段原始碼,那麼問題來了👉原始碼告訴了我們什麼?
3、6種讀取Excel的方式
下面我們就根據上文獲取到的pandas原始碼,逐個解析一下這6種讀取excel的方式。
1、指定索引列讀取
這種讀取方式,適合Excel裡的資料,本身有一列表示序號的情況。
pd.read_excel('fake2excel.xlsx', index_col=0)
# 使用index_col=0,指定第1列作為索引列。
結果如下圖所示:
- 列名沒有對齊,不是程式碼執行有問題,是因為那麼列被當作了索引列。
這種方式不符合我們這個檔案的要求,所以我們可以進行以下修改:不要指定索引列。
程式碼和結果如下:
pd.read_excel('fake2excel.xlsx', index_col=None)
2、指定sheet讀取
見名知意。
pd.read_excel(open('fake2excel.xlsx', 'rb'), sheet_name='Sheet2')
# 使用sheet_name=0,指定讀取sheet2裡面的內容。
我們在原表裡加入了sheet2,結果如下圖所示:
- 這種情況下,不會讀取sheet1裡面的內容
3、取消header讀取
讀取本身沒有列名的資料。
pd.read_excel('fake2excel.xlsx', index_col=None, header=None)
# 使用header=None,取消header讀取。
結果如下圖所示:
- 這種情況下,適合原Excel表沒有列名的情況。
- 我們的檔案裡有列名的情況下,列名也被當成了資料。
4、指定讀取格式
這種適合高階玩家,在對資料處理精度要求比較高或者速度要求比較快的情況下。
pd.read_excel('fake2excel.xlsx', index_col=0, dtype={'age': float})
# 使用dtype,指定某一列的資料型別。
結果如下圖所示:
- 我們添加了一列:年齡,本來是整數,但是指定float型別之後,讀取出來成了小書。
- 這種讀取,更適合對資料有特殊要求的情況,例如:金融行業。
5、自定義缺失值
這種使用的場景是什麼呢?比如在收集資訊的時候據時候,發現有人填的年齡是負數,那就自動給他把年齡清空掉,讓他重新填寫。
pd.read_excel('fake2excel.xlsx', index_col=None,na_values={'name':"龐強"})
# 使用na_values,自己定義不顯示的資料
結果如下圖所示:
- 我們的表格裡,有個人的名字叫:龐強我們不想顯示這個人的名字
- 於是我們就在na_values指定:name這一列是龐強的名字,置為空,在pandas裡空值會用NaN表示。
6、處理Excel裡的註釋行
不僅Python是可以寫註釋的,Excel也是可以寫註釋的。很多人沒有用過,用過的朋友在評論區說一下你為什麼給Excel寫註釋吧~?
pandas提供了處理Excel註釋行的方法。
pd.read_excel('fake2excel.xlsx', index_col=None, comment='#')
結果如下圖所示:
4、寫在最後
做為Python程式設計師,平時需要大家閱讀原始碼,認清楚程式碼背後的原理和邏輯。
最近使用pandas比較多,正好pandas也可以處理excel,所以近期會持續的更新一些pandas使用的文章。
下一篇想看什麼,在評論區告訴我吧
- 幫師姐把100個Excel中符合條件的資料,彙總到1個Excel裡
- 176萬!GPT-4釋出了,如何檢視OpenAI的下載量?
- 1行Python程式碼,把PPT轉成圖片,python-office功能更新~
- 定了!Python3.7,今年停止更新!
- 1行Python程式碼去除圖片水印,網友:乾乾淨淨!
- Python辦公實戰!按姓名拆分Excel為單獨檔案,微信自動發給相應聯絡人
- 12個Python自動化辦公的官方文件,中文版只有2個?
- 終究還是錯付了!這2種Python寫法已經被淘汰了,你是不是還在用?
- 用Python下載B站視訊?1行命令搞定,悄悄用
- 用Python自動生成 圖文並茂的資料分析 報告
- 自動合併Excel的4種方法,pandas自動化辦公,YYDS
- 絕了!深度解析了1道華為Python筆試題,竟然可以學會12種Python里正則表示式的用法
- 1行Python程式碼,實現PDF轉圖片,速度太太太太太快了
- 1行Python程式碼,拿到周杰倫新歌的MP3檔案,終於可以免費聽周杰倫了
- 官方推薦:6種Pandas讀取Excel的方法,太方便了~
- 如何生成1億個手機號碼?Python生成隨機數的22種方法,random函式太強了~
- 新人必看:python自動化辦公,開源專案的目錄結構
- 一行Python程式碼,給PDF檔案新增水印
- 太厲害了,通過文件內容快速查詢檔案,1行Python程式碼實現
- 一行Python程式碼,如何成為辦公小助手?這5個操作,超實用!