使用pandas讀取excel

2021-10-04 20:50:29 字數 4274 閱讀 4149

pd.read_excel(io, sheet_name=0, header=0, names=none, index_col=none,

usecols=none, squeeze=false,dtype=none, engine=none,

converters=none, true_values=none, false_values=none,

skiprows=none, nrows=none, na_values=none, parse_dates=false,

date_parser=none, thousands=none, comment=none, skipfooter=0,

convert_float=true, **kwds)

1、io,excel的儲存路徑

2、sheet_name,要讀取的工作表名稱

3、header, 用哪一行作列名

4、names, 自定義最終的列名

5、index_col, 用作索引的列

6、usecols,需要讀取哪些列

7、squeeze,當資料僅包含一列

8、converters ,強制規定列資料型別

9、skiprows,跳過特定行

10、nrows ,需要讀取的行數

11、skipfooter , 跳過末尾n行

excel是微軟的經典之作,在日常工作中的資料整理、分析和視覺化方面,有其獨到的優勢,尤其在你熟練應用了函式和資料透視等高階功能之後,excel可以大幅度提高你的工作效率。但如果資料量超大,excel的劣勢也就隨之而來,甚至因為記憶體溢位無法開啟檔案,後續的分析更是難上加難。那麼,有什麼更好的解決辦法嗎?工欲善其事,必先利其器,在這裡我們介紹使用python的pandas資料分析包來解決此問題。

pd.read_excel(io, sheet_name=0, header=0, names=none, index_col=none,

usecols=none, squeeze=false,dtype=none, engine=none,

converters=none, true_values=none, false_values=none,

skiprows=none, nrows=none, na_values=none, parse_dates=false,

date_parser=none, thousands=none, comment=none, skipfooter=0,

convert_float=true, **kwds)

pandas讀取excel後返回dataframe,接下來我們就pd.read_excel()的常用引數進行詳細解析。

【文中使用英超、西甲的排名積分榜及射手榜作為原始資料~~~】

1、io,excel的儲存路徑

建議使用英文路徑以及英文命名方式。

import pandas as pd

io = r'c:\users\administrator\desktop\data.xlsx'

2、sheet_name,要讀取的工作表名稱

可以是整型數字、列表名或sheetn,也可以是上述三種組成的列表。

整型數字:目標sheet所在的位置,以0為起始,比如sheet_name = 1代表第2個工作表。

data = pd.read_excel(io, sheet_name = 1)

data.head()

列表名:目標sheet的名稱,中英文皆可。

data = pd.read_excel(io, sheet_name = '英超射手榜')

data.head()

sheetn:代表第n個sheet,s要大寫,注意與整型數字的區別。

data = pd.read_excel(io, sheet_name = 'sheet5')

data.head()

組合列表: sheet_name = [0, '英超射手榜', 'sheet4'],代表讀取三個工作表,分別為第1個工作表、名為「英超射手榜」的工作表和第4個工作表。顯然,sheet4未經重新命名。

sheet_name 預設為0,取excel第乙個工作表。如果讀取多個工作表,則顯示**的字典。對於初學者而言,建議每次讀取乙個工作表,然後進行二次整合。

data = pd.read_excel(io, sheet_name = ['英超積分榜', '西甲積分榜'], nrows = 5)

data

3、header, 用哪一行作列名

預設為0 ,如果設定為[0,1],則表示將前兩行作為多重索引。

data = pd.read_excel(io, sheet_name = '英超積分榜', header = [0,1])

data.head()

4、names, 自定義最終的列名

一般適用於excel缺少列名,或者需要重新定義列名的情況。

注意:names的長度必須和excel列長度一致,否則會報錯。

data = pd.read_excel(io, sheet_name = '英超射手榜',

names = ['rank','player','club','goal','common_goal','penalty'])

data.head()

5、index_col, 用作索引的列

可以是工作表列名稱,如index_col = '排名';

可以是整型或整型列表,如index_col = 0 或 [0, 1],如果選擇多個列,則返回多重索引。

data = pd.read_excel(io, sheet_name = '英超射手榜', index_col = '排名')

data.head()

data = pd.read_excel(io, sheet_name = '英超射手榜', index_col = [0, 1])

data.head()

6、usecols,需要讀取哪些列

可以使用整型,從0開始,如[0,2,3];

可以使用excel傳統的列名「a」、「b」等字母,如「a:c, e」 ="a, b, c, e",注意兩邊都包括。

usecols 可避免讀取全量資料,而是以分析需求為導向選擇特定資料,可以大幅提高效率。

data = pd.read_excel(io, sheet_name = '西甲射手榜', usecols = [0, 1, 3])

data.head()

data = pd.read_excel(io, sheet_name = '西甲射手榜', usecols = 'a:c, e')

data.head()

7、squeeze,當資料僅包含一列

squeeze為true時,返回series,反之返回dataframe。

data = pd.read_excel(io, sheet_name = 'squeeze', squeeze = true)

data.head()

data = pd.read_excel(io, sheet_name = 'squeeze', squeeze = false)

data.head()

8、converters ,強制規定列資料型別

converters = , 將「排名」列資料型別強制規定為字串(pandas預設將文字類的資料讀取為整型),「場次」列強制規定為整型;

主要用途:保留以文字形式儲存的數字。

data = pd.read_excel(io, sheet_name = 'converters')

data['排名'].dtype

data = pd.read_excel(io, sheet_name = 'converters', converters = )

data['排名'].dtype

9、skiprows,跳過特定行

skiprows= n, 跳過前n行; skiprows = [a, b, c],跳過第a+1,b+1,c+1行(索引從0開始);

使用skiprows 後,有可能首行(即列名)也會被跳過。

data = pd.read_excel(io, sheet_name = '英超射手榜', skiprows = [1,2,3])

data.head()

data = pd.read_excel(io, sheet_name = '英超射手榜', skiprows = 3)

data.head()

11、skipfooter , 跳過末尾n行

data = pd.read_excel(r'c:\users\administrator\desktop\data.xlsx' ,

sheet_name = '英超射手榜', skipfooter = 43)

data

pandas讀取excel檔案

import pandas as pd 先將檔案讀到記憶體中形成乙個datefream people pd.read excel r people.xlsx 檢視行數和列數 print people.shape 檢視列名 當直接列印datefream時 id不會顯示 datefream對待index...

pandas 讀取Excel檔案

注意 讀取檔案會自動建立索引index,直接儲存dataframe為excel檔案會多一行index!預設第一行為欄位名 people pd.read excel d temp people.xls 注意 若前面有若干空行,則自動跳過 指定欄位名的行 無字段行,header none,pandas為...

Pandas讀取並修改excel

最近總是和excel打交道,由於資料量較大,人工來修改某些資料可能會有點浪費時間,這時候就使用到了python資料處理的神器 pandas庫,話不多說,直接上pandas。安裝完成後使用python自帶的包管理工具pip可以很快的安裝pandas。pip install pandas如果使用的是an...