一、函數原型
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)
二、功能說明
將Excel文件讀取到pandas DataFrame中,支持本地文件系統或URL的’xls’和’xlsx’文件擴展名,帶有這兩種擴展名的文件,函數都可以處理。
三、常用參數說明
- io參數
io參數可以接受的有:str,Excel文件,xlrd.Book,路徑對象或類似文件的對象。其中最常用的是str,一般是文件路徑+文件名,需要注意的是文件名字不要漏掉后綴,即文件擴展名,表明文件類型的那個!有時候需要對路徑中的”\”進行轉義,io參數沒有默認值,必須傳入。
# jupter notebook環境中不需要對"\"進行轉義
pd.read_excel(r"C:\Users\asus\Desktop\test.xlsx")
# pd.read_excel(r"C:\\Users\\asus\\Desktop\\test.xlsx")
# jupter notebook、Windows環境下,用"/"可以文件名聯想
pd.read_excel(r"C:/Users/asus/Desktop/test.xlsx")
tips:要不要轉義可能和編輯器、操作系統有關。建議都寫成最后一種形式。
- sheet_name參數
通過sheet位置或sheet名字來指定讀入哪個sheet的數據。
當一個excel工作簿中包含有很多個sheet工作表時,sheet_name用於決定導入那個sheet表單。可以接收的參數類型有:str,int,list或None,默認0。其中,str代表“工作表名稱”;整數用於零索引工作表位置;字符串/整數列表用於請求多個工作表;None獲取所有工作表;默認0,獲取第一個工作表。
# 導入第一個工作表,索引從0開始,傳參類型為int
pd.read_excel(r"C://Users//asus//Desktop/test.xlsx",sheet_name=0)
# 導入表名為“data1”的工作表,傳參類型為str
pd.read_excel(r"C://Users//asus//Desktop/test.xlsx",sheet_name="data1")
# 導入第一個和第三個工作表,傳參類型為int型列表
pd.read_excel(r"C://Users//asus//Desktop/test.xlsx",sheet_name=[0,2])
- header參數
指定哪一行作為列名的,默認值是0,即第1行作為列名。
接受的參數可以是:整數(指定第幾行作為列名);有整數組成的列表(指定哪幾行作為列名);None(沒有列名,Python自動生成0始序列)
# 列名為從0開始的序列
pd.read_excel(r"C://Users//asus//Desktop/test.xlsx",header=None)
# 第3行當列名
pd.read_excel(r"C://Users//asus//Desktop/test.xlsx",header=2)
# 第3,5行當列名
pd.read_excel(r"C://Users//asus//Desktop/test.xlsx",header=[2,4])
- names參數
表示要使用的列名列表,也就是說可以自定義列名。一般傳入字符型列表。默認是None。
若設置了names參數,同時也設置了header參數,此時header=n表示從第n+2行開始導入數據。
header = None和names參數都設置的話,依然會顯示names指定的列名,從第一行開始導入數據。
# 從第2行開始導入數據
pd.read_excel(r"C:/Users/asus/Desktop/test.xlsx",header=0,names=["a","b","c"])
# 從第1行開始導入數據
pd.read_excel(r"C:/Users/asus/Desktop/test.xlsx",header=None,names=["a","b","c"])
index_col參數
指定用哪一列做為索引。參數接收整數,或者由整數組成的列表,默認是None。和header參數類似。
usecols參數
控制導入的哪幾列(當列數過多時)。接收整數(列的位置),字符(列名稱)或者類似列表的序列。如果設置了names參數,注意設置的列名個數要和讀取的列數一致。
squeeze參數
接收布爾值,當取值為True的時候,如果解析的數據僅包含一列,則返回Series。默認值是False,即只有一列也返回Dataframe。
dtype參數
輸入表示數據類型的名稱字符或者字典,如果輸入的是字符表示整個表格的數據都轉換成指定的數據類型,如果輸入的是字典,那么每個字段可以指定不同的數據類型。
假如整個表格中既有文本又有數值,如果要設置成統一的數據類型只能設置成字符型。
返回值:DataFrame數據框對象或Series對象(squeeze參數控制)
四、總結
參數能控制啥?哪1個或幾個表(假若是多表)、哪幾行或幾列、數據重哪行開始導入、列名和行索引等等
