用法:
pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None, squeeze=None, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, parse_dates=False, date_parser=None, thousands=None, decimal='.', comment=None, skipfooter=0, convert_float=None, mangle_dupe_cols=True, storage_options=None)
將 Excel 文件讀入 pandas DataFrame。
支持從本地文件係統或 URL 讀取的
xls
、xlsx
、xlsm
、xlsb
、odf
、ods
和odt
文件擴展名。支持讀取單個工作表或工作表列表的選項。- io:str、字節、ExcelFile、xlrd.Book、路徑對象或 file-like 對象
任何有效的字符串路徑都是可接受的。該字符串可以是一個 URL。有效的 URL 方案包括 http、ftp、s3 和文件。對於文件 URL,需要一個主機。本地文件可以是:
file://localhost/path/to/table.xlsx
。如果你想傳入一個路徑對象,pandas 接受任何
os.PathLike
。通過file-like 對象,我們指的是具有
read()
方法的對象,例如文件句柄(例如通過內置open
函數)或StringIO
。- sheet_name:str、int、list 或 None,默認 0
字符串用於工作表名稱。 zero-indexed 工作表位置使用整數(圖表工作表不計為工作表位置)。字符串/整數列表用於請求多張工作表。指定無以獲取所有工作表。
可用案例:
默認為
0
:第一張紙作為DataFrame
1
:第二張紙作為DataFrame
"Sheet1"
:加載名稱為 “Sheet1” 的工作表[0, 1, "Sheet5"]
:將名為 “Sheet5” 的第一、第二和工作表加載為DataFrame
的字典無:所有工作表。
- header:int,int 列表,默認 0
用於已解析 DataFrame 的列標簽的行(0 索引)。如果傳遞了整數列表,則這些行位置將組合成
MultiIndex
。如果沒有標題,請使用 None。- names:array-like,默認無
要使用的列名列表。如果文件不包含標題行,那麽您應該顯式傳遞 header=None。
- index_col:int,int 列表,默認無
列(0 索引)用作 DataFrame 的行標簽。如果沒有這樣的列,則通過 None。如果傳遞了一個列表,這些列將被組合成一個
MultiIndex
。如果使用usecols
選擇了數據子集,則 index_col 基於該子集。- usecols:int、str、list-like 或可調用的默認值無
如果沒有,則解析所有列。
如果是 str,則表示 Excel 列字母和列範圍的逗號分隔列表(例如 “A:E” 或 “A,C,E:F”)。範圍包括雙方。
如果是 int 列表,則表示要解析的列號列表。
如果是字符串列表,則表示要解析的列名列表。
如果可調用,則根據它評估每個列名並在可調用返回
True
時解析列。
根據上述行為返回列的子集。
- squeeze:布爾值,默認為 False
如果解析的數據隻包含一列,則返回一個係列。
- dtype:類型名稱或列的字典 -> 類型,默認無
數據或列的數據類型。例如: {‘a’:np.float64, ‘b’:np.int32} 使用
object
將數據保存在 Excel 中,而不是解釋 dtype。如果指定了轉換器,則將應用它們代替 dtype 轉換。- engine:str,默認無
如果 io 不是緩衝區或路徑,則必須將其設置為標識 io。支持的引擎:“xlrd”, “openpyxl”, “odf”, “pyxlsb”。發動機兼容性:
“xlrd” 支持 old-style Excel 文件 (.xls)。
“openpyxl” 支持更新的 Excel 文件格式。
“odf” 支持 OpenDocument 文件格式(.odf、.ods、.odt)。
“pyxlsb” 支持二進製 Excel 文件。
- converters:字典,默認無
用於轉換某些列中的值的函數的字典。鍵可以是整數或列標簽,值是接受一個輸入參數的函數,即 Excel 單元格內容,並返回轉換後的內容。
- true_values:列表,默認無
值視為 True。
- false_values:列表,默認無
要考慮為 False 的值。
- skiprows:list-like,int,或可調用,可選
文件開頭要跳過的行號(0-indexed)或要跳過的行數(int)。如果可調用,可調用函數將根據行索引進行評估,如果應該跳過該行,則返回 True,否則返回 False。一個有效的可調用參數的例子是
lambda x:x in [0, 2]
。- nrows:整數,默認無
要解析的行數。
- na_values:標量、str、list-like 或 dict,默認為 None
要識別為 NA/NaN 的附加字符串。如果 dict 通過,特定的 per-column NA 值。默認情況下,以下值被解釋為 NaN:''、'#N/A'、'#N/AN/A'、'#NA'、'-1.#IND'、'-1.#QNAN'、 '-NaN'、'-nan'、'1.#IND'、'1.#QNAN'、'<NA>'、'N/A'、'NA'、'NULL'、'NaN'、'n /a',‘nan’, ‘null’。
- keep_default_na:布爾值,默認為真
解析數據時是否包含默認的 NaN 值。根據是否傳入
na_values
,行為如下:如果
keep_default_na
為 True,並且指定了na_values
,則將na_values
附加到用於解析的默認 NaN 值。如果
keep_default_na
為 True,並且未指定na_values
,則僅使用默認的 NaN 值進行解析。如果
keep_default_na
為 False,並且指定了na_values
,則僅使用指定的 NaN 值na_values
進行解析。如果
keep_default_na
為 False,並且未指定na_values
,則不會將任何字符串解析為 NaN。
請注意,如果
na_filter
作為 False 傳入,則keep_default_na
和na_values
參數將被忽略。- na_filter:布爾值,默認為真
檢測缺失值標記(空字符串和na_values 的值)。在沒有任何 NA 的數據中,傳遞 na_filter=False 可以提高讀取大文件的性能。
- verbose:布爾值,默認為 False
指示放置在非數字列中的 NA 值的數量。
- parse_dates:bool,list-like,或 dict,默認為 False
行為如下:
布爾。如果 True -> 嘗試解析索引。
int 或名稱列表。例如如果 [1, 2, 3] -> 嘗試將第 1、2、3 列分別解析為單獨的日期列。
列表列表。例如如果 [[1, 3]] -> 合並第 1 列和第 3 列並解析為單個日期列。
字典,例如{‘foo’:[1, 3]} -> 將第 1、3 列解析為日期並調用結果 ‘foo’
如果列或索引包含不可解析的日期,則整個列或索引將作為對象數據類型原封不動地返回。如果您不想將某些單元格解析為日期,隻需將它們在 Excel 中的類型更改為“Text”。對於非標準日期時間解析,請在
pd.read_excel
之後使用pd.to_datetime
。注意:iso8601 格式的日期存在fast-path。
- date_parser:函數,可選
用於將字符串列序列轉換為日期時間實例數組的函數。默認使用
dateutil.parser.parser
進行轉換。 Pandas 將嘗試以三種不同的方式調用date_parser
,如果發生異常則前進到下一種方式:1) 將一個或多個數組(由parse_dates
定義)作為參數傳遞; 2) 將parse_dates
定義的列中的字符串值連接(按行)到單個數組中並傳遞它; 3) 使用一個或多個字符串(對應於parse_dates
定義的列)作為參數為每一行調用一次date_parser
。- thousands:str,默認無
用於將字符串列解析為數字的千位分隔符。請注意,此參數僅對在 Excel 中存儲為 TEXT 的列是必需的,任何數字列都將被自動解析,無論顯示格式如何。
- decimal:str,默認“。”
將字符串列解析為數字時識別為小數點的字符。請注意,此參數僅對在 Excel 中存儲為 TEXT 的列是必需的,任何數字列都將自動解析,無論顯示格式如何。(例如,使用“,”表示歐洲數據)。
- comment:str,默認無
注釋掉行的剩餘部分。將一個或多個字符傳遞給此參數以指示輸入文件中的注釋。注釋字符串和當前行末尾之間的任何數據都將被忽略。
- skipfooter:整數,默認 0
最後要跳過的行(0 索引)。
- convert_float:布爾值,默認為真
將整數浮點數轉換為 int(即 1.0 -> 1)。如果為 False,所有數值數據將作為浮點數讀入:Excel 在內部將所有數字存儲為浮點數。
- mangle_dupe_cols:布爾值,默認為真
重複的列將被指定為“X”、“X.1”、……“X.N”,而不是“X”……“X”。如果列中存在重複名稱,則傳入 False 將導致數據被覆蓋。
- storage_options:字典,可選
對特定存儲連接有意義的額外選項,例如主機、端口、用戶名、密碼等,如果使用將由
fsspec
解析的 URL,例如,從 “s3://”、“gcs://” 開始。如果為該參數提供本地路徑或 file-like 緩衝區,則會引發錯誤。有關允許的鍵和值集,請參閱 fsspec 和後端存儲實現文檔。
- DataFrame 或 DataFrames 的字典
來自傳入的 Excel 文件的 DataFrame。有關何時返回 DataFrames 的字典的更多信息,請參閱sheet_name 參數中的注釋。
參數:
返回:
例子:
可以使用文件名作為字符串或打開的文件對象來讀取文件:
>>> pd.read_excel('tmp.xlsx', index_col=0) Name Value 0 string1 1 1 string2 2 2 #Comment 3
>>> pd.read_excel(open('tmp.xlsx', 'rb'), ... sheet_name='Sheet3') Unnamed:0 Name Value 0 0 string1 1 1 1 string2 2 2 2 #Comment 3
可以通過
index_col
和header
參數指定索引和標題>>> pd.read_excel('tmp.xlsx', index_col=None, header=None) 0 1 2 0 NaN Name Value 1 0.0 string1 1 2 1.0 string2 2 3 2.0 #Comment 3
列類型是推斷的,但可以顯式指定
>>> pd.read_excel('tmp.xlsx', index_col=0, ... dtype={'Name':str, 'Value':float}) Name Value 0 string1 1.0 1 string2 2.0 2 #Comment 3.0
True、False 和 NA 值以及千位分隔符具有默認值,但也可以顯式指定。以字符串或字符串列表的形式提供您想要的值!
>>> pd.read_excel('tmp.xlsx', index_col=0, ... na_values=['string1', 'string2']) Name Value 0 NaN 1 1 NaN 2 2 #Comment 3
可以使用
comment
kwarg 跳過 excel 輸入文件中的注釋行>>> pd.read_excel('tmp.xlsx', index_col=0, comment='#') Name Value 0 string1 1.0 1 string2 2.0 2 None NaN
相關用法
- Python pandas.read_pickle用法及代碼示例
- Python pandas.read_hdf用法及代碼示例
- Python pandas.read_xml用法及代碼示例
- Python pandas.read_table用法及代碼示例
- Python pandas.read_sql_table用法及代碼示例
- Python pandas.read_fwf用法及代碼示例
- Python pandas.read_stata用法及代碼示例
- Python pandas.read_sql用法及代碼示例
- Python pandas.read_csv用法及代碼示例
- Python pandas.read_html用法及代碼示例
- Python pandas.read_json用法及代碼示例
- Python pandas.arrays.IntervalArray.is_empty用法及代碼示例
- Python pandas.DataFrame.ewm用法及代碼示例
- Python pandas.api.types.is_timedelta64_ns_dtype用法及代碼示例
- Python pandas.DataFrame.dot用法及代碼示例
- Python pandas.DataFrame.apply用法及代碼示例
- Python pandas.DataFrame.combine_first用法及代碼示例
- Python pandas.Index.value_counts用法及代碼示例
- Python pandas.DatetimeTZDtype用法及代碼示例
- Python pandas.DataFrame.cumsum用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.read_excel。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。