python pandas是如何讀取excel表中的sheet的(二)

在之前文章中,我重點講解了pd.read_excel()方法中的sheet_name入參,剛開始我還以為這基本上就能滿足日常的需求了。可是,今天認真看了網上的一些例子,以及調用help()方法詳細查看了文檔說明,這遠遠是不夠的。今天開始,我們繼續,直到介紹完絕大部分我覺得可能會對大家有幫助的入參。上週週六制定的計劃可能需要推遲,給您帶來的不便,還請諒解。今天重點介紹header,names兩個入參。下面是pandas文檔給出的說明,header : int, list of int, default 0Row (0-indexed) to use for the column labels of the parsedDataFrame. If a list of integers is passed those row positions willbe combined into a MultiIndex. Use None if there is no header.(header默認是以第0行作為列名的,也就是說如果原本你的excel表格就是一個無列名的表格,這時需要指定header=None)names : array-like, default NoneList of column names to use. If file contains no header row,then you should explicitly pass header=None.(names參數通常在excel自身無列名的情況下,專門指定一個列表給每個列添加一個列名)下面我們通過代碼說明:

python pandas是如何讀取excel表中的sheet的(二)

<code># header取默認值0的效果
>>> df = pd.read_excel(r'D:/myExcel/1.xlsx', sheet_name='Sheet1', header=0)
>>> df
name math science
0 bob 23 12
1 millor 32 32
2 jiken 61 89
3 tom 34 94
4 json 83 12
5 dela 96 67
6 rison 90 34

# header取1時的情況,自動捨棄了原本的列表,把原本的1行做為列名
>>> df = pd.read_excel(r'D:/myExcel/1.xlsx', sheet_name='Sheet1', header=1)
>>> df
bob 23 12
0 millor 32 32
1 jiken 61 89
2 tom 34 94
3 json 83 12
4 dela 96 67
5 rison 90 34
# header取兩列的情況,這樣本次df就有雙重列名了
>>> df = pd.read_excel(r'D:/myExcel/1.xlsx', sheet_name='Sheet1', header=[0, 1])
>>> df
name math science
bob 23 12
0 millor 32 32
1 jiken 61 89
2 tom 34 94
3 json 83 12
4 dela 96 67
5 rison 90 34
/<code>

當我們又有如下無列名的表格時:

python pandas是如何讀取excel表中的sheet的(二)

<code># 在這裡,我們指定了header=None,因為默認是0會出現上面把0行作為列標,造成數據丟失,pandas默認添加了數字作為列標
>>> df = pd.read_excel(r'D:/myExcel/1.xlsx', sheet_name='Sheet1', header=None)
>>> df
0 1 2
0 bob 23 12
1 millor 32 32
2 jiken 61 89
3 tom 34 94
4 json 83 12
5 dela 96 67
6 rison 90 34
# 當然如果我們不想要默認的列標時,這時names參數就可以登場了
>>> df = pd.read_excel(r'D:/myExcel/1.xlsx', sheet_name='Sheet1', header=None, names = ['name', 'math', 'science'])
>>> df
name math science
0 bob 23 12
1 millor 32 32
2 jiken 61 89
3 tom 34 94
4 json 83 12
5 dela 96 67
6 rison 90 34
/<code>

哈哈,以上就是今天的內容,我相信,一定可以幫助到您。建議平常多調用help()函數,雖然是英文的說明,但真的不難。同時,也要多看看pandas文檔,


分享到:


相關文章: