- 用法:- 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- 可以使用 - commentkwarg 跳过 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
