pandas.read_excel#
- 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数据帧。
支架 xls , xlsx , xlsm , xlsb , odf , ods 和 odt 从本地文件系统或URL读取的文件扩展名。支持读取单个工作表或工作表列表的选项。
- 参数
- io字符串、字节、ExcelFile、xlrd.Book、Path对象或类似文件的对象
任何有效的字符串路径都可以接受。该字符串可以是URL。有效的URL方案包括http、ftp、s3和文件。对于文件URL,需要主机。本地文件可以是:
file://localhost/path/to/table.xlsx
。如果要传入Path对象,则Pandas接受任何
os.PathLike
。对于类似文件的对象,我们使用
read()
方法,如文件句柄(例如,通过内置open
函数)或StringIO
。- sheet_name字符串、整型、列表或无,默认为0
字符串用于图纸名称。整数用于零索引工作表位置(图表工作表不计入工作表位置)。字符串/整数列表用于请求多个工作表。指定无以获取所有工作表。
可用案例:
默认为
0
:第一张图纸作为 DataFrame1
: 2nd sheet as a DataFrame"Sheet1"
:加载名称为“Sheet1”的图纸[0, 1, "Sheet5"]
: Load first, second and sheet named "Sheet5" as a dict of DataFrame无:所有工作表。
- headerInt,int列表,默认为0
用于分析的DataFrame的列标签的行(0-已索引)。如果传递整数列表,则这些行位置将合并到一个
MultiIndex
。如果没有标题,请使用None。- names类似数组,默认为无
要使用的列名列表。如果文件不包含标题行,则应显式传递Header=None。
- index_colInt,int列表,默认为无
要用作DataFrame的行标签的列(0-已索引)。如果没有这样的列,则传递None。如果传递列表,则这些列将合并到一个
MultiIndex
。如果使用选择数据的子集usecols
INDEX_COL是基于子集的。将向前填充缺少的值,以允许使用
to_excel
为merged_cells=True
。若要避免向前填充缺少的值,请使用set_index
读取数据后,而不是index_col
。- usecols字符串、类似列表或可调用,默认为无
如果没有,则解析所有列。
如果为str,则表示以逗号分隔的Excel列字母和列范围列表(例如“A:E”或“A、C、E:F”)。范围包括两边。
如果list of int,则指示要解析的列号列表(0-索引)。
如果是字符串列表,则指示要分析的列名的列表。
如果可调用,则针对其计算每个列名,并在可调用返回时解析该列
True
。
根据上述行为返回列的子集。
- squeeze布尔值,默认为False
如果解析的数据只包含一列,则返回一个Series。
1.4.0 版后已移除: 附加
.squeeze("columns")
呼叫到read_excel
来压缩数据。- dtype列的类型名称或字典->类型,默认为无
数据或列的数据类型。例如,{‘a’:np.flat64,‘b’:np.int32}使用 object 保留存储在Excel中的数据,而不解释数据类型。如果指定了转换器,则将应用它们而不是数据类型转换。
- engine字符串,默认为无
如果io不是缓冲区或路径,则必须对其进行设置以标识io。支持的引擎:“xlrd”、“Openpyxl”、“odf”、“pyxlsb”。引擎兼容性:
“xlrd”支持旧式Excel文件(.xls)。
“Openpyxl”支持较新的Excel文件格式。
“odf”支持OpenDocument文件格式(.odf、.ods、.odt)。
“pyxlsb”支持二进制Excel文件。
- convertersDict,默认无
用于转换某些列中的值的函数的字典。键可以是整数或列标签,值是接受一个输入参数(Excel单元格内容)并返回转换后内容的函数。
- true_values列表,默认为无
要视为True的值。
- false_values列表,默认为无
要视为False的值。
- skiprowsList-like、int或Callable、可选
文件开始处要跳过的行数(0-索引)或要跳过的行数(Int)。如果可调用,则将根据行索引计算可调用函数,如果应该跳过该行,则返回True,否则返回False。有效的可调用参数的示例如下
lambda x: x in [0, 2]
。- nrowsInt,默认为无
要分析的行数。
- na_values标量、字符串、类似列表或DICT,默认为无
要识别为NA/NaN的其他字符串。如果DCT通过,则为特定的每列NA值。默认情况下,下列值被解释为NaN:‘’、‘#N/A’、‘#N/A N/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布尔值,默认为True
在解析数据时是否包括默认的NaN值。取决于是否 na_values 传入时,行为如下:
如果 keep_default_na 为真,并且 na_values 是指定的, na_values 被附加到用于解析的默认NaN值。
如果 keep_default_na 为真,并且 na_values 未指定,则只使用默认的NaN值进行解析。
如果 keep_default_na 为假,并且 na_values ,则仅指定NaN值。 na_values 用于解析。
如果 keep_default_na 为假,并且 na_values 未指定,则不会将任何字符串解析为NaN。
请注意,如果 na_filter 作为FALSE传递,则 keep_default_na 和 na_values 参数将被忽略。
- na_filter布尔值,默认为True
检测缺少的值标记(空字符串和NA_VALUES的值)。在没有任何NAS的数据中,传递NA_FILTER=FALSE可以提高读取大文件的性能。
- verbose布尔值,默认为False
表示放置在非数字列中的NA值的数量。
- parse_datesBool、List-Like或Dict,默认为False
其行为如下:
布尔。如果为True->尝试解析索引。
整型或名称的列表。例如,如果 [1、2、3] ->尝试将第1、2、3列分别解析为单独的日期列。
列表列表。例如,如果 [[1,3] ]->组合第1列和第3列,并解析为单个日期列。
词典,例如{‘foo’: [1, 3] }->将第1、3列解析为日期并调用结果‘foo’
如果列或索引包含无法分析的日期,则整个列或索引将原封不动地作为对象数据类型返回。如果你不想将某些单元格解析为日期,只需将它们在Excel中的类型更改为“文本”即可。对于非标准日期时间解析,请使用
pd.to_datetime
之后pd.read_excel
。注意:对于ISO 8601格式的日期,有一条快速路径。
- date_parser函数,可选
用于将字符串列序列转换为DateTime实例数组的函数。默认情况下使用
dateutil.parser.parser
来进行转换。Pandas会试着呼唤 date_parser 如果发生异常,则以三种不同的方式前进到下一个:1)传递一个或多个数组(由 parse_dates )作为参数;2)连接(按行)由定义的列的字符串值 parse_dates 放入单个数组并传递该函数;以及3)调用 date_parser 使用一个或多个字符串(对应于由 parse_dates )作为参数。- thousands字符串,默认为无
用于将字符串列解析为数字的千位分隔符。请注意,此参数仅对于在Excel中存储为文本的列是必需的,无论显示格式如何,任何数值列都将被自动解析。
- decimal字符串,默认为‘.’
要识别为小数点的字符,用于将字符串列分析为数字。请注意,此参数仅对于在Excel中存储为文本的列是必需的,任何数字列都将被自动解析,而不考虑显示格式。(例如,使用‘,’表示欧洲数据)。
1.4.0 新版功能.
- comment字符串,默认为无
注释掉行的其余部分。向此参数传递一个或多个字符以指示输入文件中的注释。注释字符串和当前行尾之间的任何数据都将被忽略。
- skipfooter整型,默认为0
末尾要跳过的行(0-已编制索引)。
- convert_float布尔值,默认为True
将整型浮点数转换为整型(即1.0-->1)。如果为False,则所有数字数据都将作为浮点型读入:Excel在内部将所有数字存储为浮点型。
1.3.0 版后已移除: Convert_Float将在未来版本中删除
- mangle_dupe_cols布尔值,默认为True
重复的列将指定为‘X’、‘X.1’、...‘X.N’,而不是‘X’...‘X’。如果列中有重复的名称,则传入False将导致数据被覆盖。
- storage_optionsDICT,可选
对特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等。对于HTTP(S)URL,键-值对被转发到
urllib.request.Request
作为标题选项。对于其他URL(例如,以“s3://”和“gcs://”开头),键-值对被转发到fsspec.open
。请看fsspec
和urllib
有关更多详细信息和有关存储选项的更多示例,请参阅 here 。1.2.0 新版功能.
- 退货
- DataFrame或DataFrame的字典
传入的Excel文件中的DataFrame。有关何时返回DataFrames的判定的更多信息,请参见Sheet_NAME参数中的注释。
参见
DataFrame.to_excel
将DataFrame写入Excel文件。
DataFrame.to_csv
将DataFrame写入逗号分隔值(CSV)文件。
read_csv
将逗号分隔值(CSV)文件读入DataFrame。
read_fwf
将固定宽度的格式化行表读入DataFrame。
示例
可以使用文件名作为字符串或打开的文件对象来读取文件:
>>> 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
可以跳过EXCEL输入文件中的注释行 comment 科瓦格
>>> pd.read_excel('tmp.xlsx', index_col=0, comment='#') Name Value 0 string1 1.0 1 string2 2.0 2 None NaN