Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下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 DataFrame。支持从本地文件系统或URL读取xlsxlsxxlsmxlsbodfodsodt文件扩展名。支持读取单个工作表或工作表列表的选项。

参数:

iostr,bytes, ExcelFile, xlrd.Book, path object

file-like object

任何有效的字符串路径都可以接受。字符串可以是URL

有效的URL方案包括httpftps3file

对于文件url,需要一个主机。

本地文件可以是:file://localhost/path/to/table.xlsx

如果想传递一个路径对象,pandas接受任何os.PathLike

通过file-like object,我们使用read()方法来引用对象,

如文件句柄(例如,通过内置的open函数)或StringIO

sheet_name:str, int, list,或 None, 默认为 0

字符串用于工作表名称。

整数用于索引为0工作表位置(图表工作表不计入工作表位置)。

字符串/整数列表用于请求多个工作表。指定None获取所有工作表。

可用的情况下:

1)默认为0:第一个工作表作为DataFrame

2)1:作为DataFrame的第二个sheet

3)"Sheet1": 加载名称为“Sheet1”的sheet

4)[0, 1, "Sheet5"]: 首先加载第一个和第二个,

然后加载名称为“Sheet5”的工作表,DataFrame类型的dict

5)None: 加载所有的工作表

headerint, int类型的list,默认为0

用于已解析DataFrame的列标签的行(0-索引)。

如果传递一个整数列表,这些行位置将合并到一个MultiIndex

如果没有标题,则使用None

namesarray-like, 默认为 None

要使用的列名的列表。如文件不包含标题行,

则应该显式地传递header=None

index_colint, int类型的list, 默认为 None

列(0索引),用作DataFrame的行标签。如果没有这样的列,

则传递None。如果传递了一个列表,

这些列将被组合成一个MultiIndex

如果使用usecols选择了一个数据子集,

index_col将基于该子集。

usecolsint, str, list-like

callable 默认为 None

1)如果为None,则解析所有列。

2)如果是str,则表示以逗号分隔的Excel列字母

和列范围列表(例如 "A:E""A,C,E:F")。

范围包括两边。

3)如果list为int,则表示要解析的列号列表。

4)如果是字符串列表,则表示要解析的列名列表。

5)如果是callable,则根据它计算每个列名,

并在可调用对象返回True时解析该列。

根据上面的行为返回列的子集。

squeezebool, 默认为 False

如果解析的数据只包含一个列,则返回一个Series

注意:1.4.0版后已弃用:在调用read_excel

附加.squeeze("columns")以压缩数据。

dtype:Type name 或 column -> type的dict, 默认为 None

数据或列的数据类型。例如,{‘a’: np.float64, ‘b’: np.int32}

使用object保存Excel中的数据,而不解释dtype。

如果指定了转换器,则将应用它们而不是dtype转换。

enginestr, 默认为 None

如果io不是缓冲区或路径,则必须设置此参数来标识io。

支持引擎:xlrd, openpyxl, odf, pyxlsb

引擎的兼容性:

1)“xlrd” 支持旧式Excel文件(.xls)。

2)“openpyxl”支持较新的Excel文件格式。

3)“odf"支持OpenDocument文件格式(.odf,.ods, .odt)。

4)“pyxlsb”支持二进制Excel文件。

注意:

在1.2.0版更改:引擎xlrd现在只支持老式的.xls文件。

engine=None时,将使用以下逻辑来确定engine:

1)如果path_or_bufferOpenDocument格式

(.odf.ods.odt),则将使用odf

2)否则,如果path_or_buffer是xls格式,

将使用xlrd

3)否则,如果path_or_buffer是xlsb格式,

则将使用pyxlsb

1.3.0新版功能。

4)否则,将使用openpyxl

在1.3.0版更改。

converters:dict, 默认为None

用于转换特定列中的值的函数dict

键可以是整数或列标签,

值是接受一个输入参数(Excel单元格内容)并返回转换后的内容的函数。

true_valueslist, 默认为 None

Values 被视为 True.

false_valueslist, 默认为 None

Values 被视为 False.

skiprows:list-like, int, 或 callable, 可选的

在文件开始处要跳过的行号(0-索引)或要跳过的行数(int)。

如果是callable,则可调用函数将根据行索引计算,

如果跳过该行则返回True,否则返回False

一个有效的可调用参数的示例如,lambda x: x in [0, 2]

nrowsint, 默认为 None

要解析的行数。

na_valuesscalar, str, list-like, 或 dict,默认 None

识别为NA/NaN的附加字符串。如果传递了dict,

则指定每列的NA值。默认情况下,

以下值被解释为NaN:

‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’, ‘-NaN’, 

‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘’, ‘N/A’, ‘NA’, ‘NULL’, ‘NaN’, 

‘n/a’, ‘nan’, ‘null’。

keep_default_nabool, 默认为 True

解析数据时是否包含默认的NaN值。根据是否传入na_values

行为如下:

1)如果keep_default_naTrue,并且指定了na_values

na_values会附加到用于解析的默认NaN值。

2)如果keep_default_naTrue,且不指定na_values

则只使用默认的NaN值进行解析。

3)如果keep_default_naFalse,并且指定了na_values

则只使用na_values指定的NaN值进行解析。

4)如果keep_default_naFalse,并且没有指定na_values

则没有字符串将被解析为NaN

注意:如果na_filter作为False传入,

keep_default_nana_values参数将被忽略。

na_filterbool, 默认为True

检测缺失的值标记(空字符串和na_values的值)。

在没有NA的数据中,传递na_filter=False可以提高读取大文件的性能。

verbosebool, 默认为 False

指示放置在非数字列中的NA值的数目。

parse_datesbool, list-like, 或 dict, 默认为 False

行为如下:

1)bool

如果为True ->,尝试解析索引。

2)int类型的list或名称

例如,如果[1,2,3]->尝试将列1,2,3分别作为一个单独的日期列进行解析。

3)列表的list。例如,如果[[1,3]]->合并列1和3并解析为单个日期列。

4)dict

例如,{‘foo’ : [1, 3]} -> 解析列1,3为日期并调用结果 'foo'

如果列或索引包含不可解析的日期,

则整个列或索引将作为对象数据类型不加更改地返回。

如果你不想把一些单元格解析为日期,

就把它们在Excel中的类型改为"Text"。

对于非标准的日期时间解析,

请使用pd.to_datetimepd.read_excel之后。

注意: 对于iso8601格式的日期,存在fast-path(快速路径)。

date_parserfunction, 可选的

函数,用于将字符串列序列转换为datetime实例数组。

默认情况下使用dateutil.parser.parser执行转换。

Pandas会尝试用三种不同的方式调用date_parser

如果发生异常会继续调用:

1)传递一个或多个数组(由parse_dates定义)作为参数;

2)将parse_dates定义的列中的字符串值连接到单个数组并传递;

3)使用一个或多个字符串(对应于parse_dates定义的列)作为参数,

为每一行调用一次date_parser。

thousandsstr, 默认为 None

用于将字符串列解析为数字的千位分隔符。

请注意,

此参数仅对Excel中存储为TEXT的列是必要的,

任何数字列将被自动解析,无论显示格式如何。

decimalstr, 默认为 ‘.’

可识别为小数点的字符,用于将字符串列解析为数字。

请注意,

此参数仅对Excel中存储为TEXT的列是必要的,

任何数字列将被自动解析,而不管显示格式如何。

欧洲数据使用‘,’)。

注意:1.4.0新版功能。

commentstr, 默认为None

注释掉该行的剩余部分。将一个或多个字符传递给此参数,

以指示输入文件中的注释。

注释字符串和当前行的末尾之间的任何数据都将被忽略。

skipfooterint, 默认为0

末尾要跳过的行(0-索引)。

convert_floatbool, 默认为True

将整型浮点数转换为int(即,1.0 –> 1)。如果为False

所有数字数据将被读取为浮点数:Excel内部存储所有数字为浮点数。

注意:1.3.0版后已弃用:convert_float将在未来的版本中移除

mangle_dupe_colsbool, 默认为 True

重复的列将被指定为‘X’, ‘X.1’, …’X.N’,而不是 ‘X’…’X’。

如果列中有重复的名称,传递False将导致数据被覆盖。

storage_options:dict, 可选的

对于特定的存储连接有意义的额外选项,

如主机、端口、用户名、密码等,

如果使用的URL将被fsspec解析,例如,启动s3://gcs://

如果使用本地路径或类文件缓冲区提供此参数,将引发错误。

有关允许的键和值的集合,请参阅fsspec和后端存储实现文档。

注意:1.2.0新版功能。

返回:

DataFrame 或 DataFrame的dict

从Excel文件中传递的DataFrame。

有关何时返回DataFrame的dict的更多信息,

请参阅sheet_name参数中的注释。

例如,

1)可以使用文件名作为字符串或打开的file对象读取文件

>>> 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

2)要指定工作表名称

>>> df1.to_excel("output.xlsx",
sheet_name='Sheet_name_1')

3) 如果要写入工作簿中的多个工作表,则需要指定ExcelWriter对象

>>> df2 = df1.copy()
with pd.ExcelWriter('output.xlsx') as writer:
df1.to_excel(writer, sheet_name='Sheet_name_1')
df2.to_excel(writer, sheet_name='Sheet_name_2')

4)ExcelWriter也可以用来追加现有的Excel文件

>>> with pd.ExcelWriter('output.xlsx',
mode='a') as writer:
df.to_excel(writer, sheet_name='Sheet_name_3')

5)要设置用于写入Excel文件的库,可以传递engine关键字(根据文件扩展名自动选择默认引擎)

>>> df1.to_excel('output1.xlsx', engine='xlsxwriter')

推荐文档

相关文档

大家感兴趣的内容

随机列表