
人們經常用pandas處理表格型數據,時常需要讀入excel表格數據,很多人一般都是直接這么用:pd.read_excel(“文件路徑文件名”),再多一點的設置可能是轉義一下路徑中的斜杠,一旦原始的excel表不是很規整,這樣簡單讀入勢必報錯!
其實這個函數有很多參數可以設置,為了應對各式excel表滿足各種讀入的需求,我們來詳細了解下pd.excel()中的主要參數。
首先,認識一下pd.read_excel(),函數的官方文檔是這么說的:將Excel文件讀取到pandas DataFrame中,支持本地文件系統或URL的’xls’和’xlsx’文件擴展名,帶有這兩種擴展名的文件,函數都可以處理;
然后它的函數完整版長這個樣子:
沒想到吧,它它它…它居然有二十多個參數,是不是有點出乎意料,接下來認識下這些參數都是做什么用的吧!
io參數可以接受的有:str,Excel文件,xlrd.Book,路徑對象或類似文件的對象,其中最常用的是str,一般是文件路徑+文件名,需要注意的是文件名字不要漏掉后綴,即文件擴展名,表明文件類型的那個!有時候需要對路徑中的”\”進行轉義,io參數沒有默認值,必須傳入。
舉個例子:
輸出結果:
sheet_name參數可以接收的有:str,int,list或None,默認0
其中,字符串用于工作表名稱。 整數用于零索引工作表位置。 字符串/整數列表用于請求多個工作表。設置None獲取所有工作表。
有時候一個excel工作簿中包含有很多個sheet工作表,如果不指定默認為0,數據讀入的時候默認讀入的是第一個位置的sheet。
常用的是指定sheet位置或者名字,還是來個例子:
輸出結果和不指定sheet時的結果是一樣的,因為默認的就是第0個sheet:
指定另一個位置的sheet:
輸出結果:
輸出結果,能夠看到結果和sheet_name=1的結果是一樣的:
可以看一下原表中sheet的名字就能理解名字為data2的sheet正好在第1個位置(名字為data1的sheet在第0個位置)
通過名字讀取另一個sheet就不在這里贅述了,我們看看這個參數還有兩種可以接收的對象,挨個看下是什么樣的效果吧。
sheet_name參數的其他設置
輸出結果:
輸出結果:
能夠看到比上邊只讀入兩個sheet工作表的命令相比,這里多了data3這個工作表!
綜上,sheet_name空值既可以通過sheet位置也可以通過sheet名字來指定讀入哪個sheet的數據。
這個參數是用來指定哪一行作為列名的,默認是第0行,接收的參數可以是整數(指定第幾行作為列名),可以是有整數組成的列表(指定哪幾行作為列名,是的,列名可以有多行,是不是有點突破認知?),也可以是None(沒有列名)。
比如這種數據就需要在讀入數據的時候指定哪一行作為列名:
開頭有空行,直接讀取試一下:
是這種效果(截取部分數據圖像):
header參數可以有效的解決這個問題,可以看到行標簽為1的數據才是我們需要的列名,所以在讀取數據的時候進行設置就可以了:
輸出結果:
這樣就符合要求了!
對header參數的其他設置
為了滿足好奇心,我們也實驗一下其他的參數,比如整數組成的列表,提前預告,讀出來不一定符合業務邏輯要求哦。
輸出結果:
能看到的確有兩行列名!
如果不要列名是什么樣子呢?
輸出結果:
不指定列名后的效果就是這樣的了!
官方文檔說這個參數接收 array-like, 默認 None,表示要使用的列名列表,如果不需要列名,請設置header = None,如果header = None和names參數都設置的話,依然會顯示names指定的列名。
還是通過實例來感受下參數的作用吧,為了節省篇幅,代碼放入截圖中:
如果原始表格中的列名不符合需求,比如上圖中很明顯是進行聚合后系統生成的列名,在讀入數據的時候可以根據需求自定義列名,需要注意的是指定的列名和原數據中的列名是依據位置一一對應的,順序不要亂了!
官方文檔說這個參數接收整數,或者由整數組成的列表,默認是None。
這個參數的作用是指定用哪一列做為行索引。如果傳給參數的是整數n,則表示指定第n列作為行索引,如果傳入的是列表,則表示需要指定多列作為行索引。上一篇文章中介紹了header參數,是指定由哪一行作為列名,也是傳入整數或者整數組成的列表,可以對比記憶。
來個例子感受一下:
上邊的例子分別采用了默認值None,整數0和列表[0,1]對index_col進行了設置,用法和效果一目了然。
看下官方文檔是怎么說的:該參數接收整數,字符或者類似列表的序列,默認值是None,返回的是列的子集,直白點解釋就是在讀入表格的時候不是所有的列都會被讀入,可以通過usecols參數來設置要把哪些列讀取進來。
溫馨提示:如果設置了names參數,注意設置的列名個數要和讀取的列數一致
來個直觀的例子感受下:
結合對參數的文字說明看例子,還是蠻清楚明白的。
來自官方文檔的解釋:接收布爾值,當取值為True的時候,如果解析的數據僅包含一列,則返回Series。默認值是False,即只有一列也返回Dataframe。
舉例說明:
如果需要讀進來一個Series,可以通過squeeze參數實現。
慣例還是官方文檔的解釋:輸入表示數據類型的名稱字符或者字典,如果輸入的是字符表示整個表格的數據都轉換成指定的數據類型,如果輸入的是字典,那么每個字段可以指定不同的數據類型。
來個例子幫助理解:
由于整個表格中既有文本又有數值,如果要設置成統一的數據類型只能設置成字符型了;針對每一列設置不同的數據類型,效果還是很明顯的。
篇幅限制,對pd.read_excel()函數參數的介紹先到這里,剩下的參數在后續的文章中接續介紹哦。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25