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: 或 任何有效的字符串路径都可以接受。字符串可以是 有效的URL方案包括 对于文件 本地文件可以是: 如果想传递一个路径对象,pandas接受任何 通过file-like object,我们使用 如文件句柄(例如,通过内置的 sheet_name: 字符串用于工作表名称。 整数用于索引为 字符串/整数列表用于请求多个工作表。指定 可用的情况下: 1)默认为 2) 3) 4) 然后加载名称为“Sheet5”的工作表,DataFrame类型的dict 5) header: 用于已解析DataFrame的列标签的行(0-索引)。 如果传递一个整数列表,这些行位置将合并到一个 如果没有标题,则使用 names: 要使用的列名的列表。如文件不包含标题行, 则应该显式地传递 index_col: 列(0索引),用作DataFrame的行标签。如果没有这样的列, 则传递 这些列将被组合成一个 如果使用 则 usecols: 或 1)如果为 2)如果是 和列范围列表(例如 范围包括两边。 3)如果list为int,则表示要解析的列号列表。 4)如果是字符串列表,则表示要解析的列名列表。 5)如果是 并在可调用对象返回 根据上面的行为返回列的子集。 squeeze: 如果解析的数据只包含一个列,则返回一个 注意:1.4.0版后已弃用:在调用 附加 dtype:Type name 或 数据或列的数据类型。例如, 使用 如果指定了转换器,则将应用它们而不是dtype转换。 engine: 如果 支持引擎: 引擎的兼容性: 1)“xlrd” 支持旧式Excel文件(.xls)。 2)“openpyxl”支持较新的Excel文件格式。 3)“odf"支持OpenDocument文件格式(.odf,.ods, .odt)。 4)“pyxlsb”支持二进制Excel文件。 注意: 在1.2.0版更改:引擎 当 1)如果 ( 2)否则,如果 将使用 3)否则,如果 则将使用 1.3.0新版功能。 4)否则,将使用 在1.3.0版更改。 converters: 用于转换特定列中的值的函数 键可以是整数或列标签, 值是接受一个输入参数(Excel单元格内容)并返回转换后的内容的函数。 true_values: Values 被视为 false_values: Values 被视为 skiprows: 在文件开始处要跳过的行号(0-索引)或要跳过的行数(int)。 如果是 如果跳过该行则返回 一个有效的可调用参数的示例如, nrows: 要解析的行数。 na_values: 识别为 则指定每列的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_na: 解析数据时是否包含默认的NaN值。根据是否传入 行为如下: 1)如果
2)如果 则只使用默认的 3)如果 则只使用 4)如果 则没有字符串将被解析为 注意:如果 则 na_filter: 检测缺失的值标记(空字符串和 在没有 verbose: 指示放置在非数字列中的NA值的数目。 parse_dates: 行为如下: 1)bool 如果为 2)int类型的list或名称 例如,如果 3)列表的list。例如,如果 4)dict 例如, 如果列或索引包含不可解析的日期, 则整个列或索引将作为对象数据类型不加更改地返回。 如果你不想把一些单元格解析为日期, 就把它们在Excel中的类型改为"Text"。 对于非标准的日期时间解析, 请使用 注意: 对于iso8601格式的日期,存在fast-path(快速路径)。 date_parser: 函数,用于将字符串列序列转换为 默认情况下使用 Pandas会尝试用三种不同的方式调用 如果发生异常会继续调用: 1)传递一个或多个数组(由parse_dates定义)作为参数; 2)将parse_dates定义的列中的字符串值连接到单个数组并传递; 3)使用一个或多个字符串(对应于parse_dates定义的列)作为参数, 为每一行调用一次date_parser。 thousands: 用于将字符串列解析为数字的千位分隔符。 请注意, 此参数仅对Excel中存储为TEXT的列是必要的, 任何数字列将被自动解析,无论显示格式如何。 decimal: 可识别为小数点的字符,用于将字符串列解析为数字。 请注意, 此参数仅对Excel中存储为TEXT的列是必要的, 任何数字列将被自动解析,而不管显示格式如何。 欧洲数据使用‘,’)。 注意:1.4.0新版功能。 comment: 注释掉该行的剩余部分。将一个或多个字符传递给此参数, 以指示输入文件中的注释。 注释字符串和当前行的末尾之间的任何数据都将被忽略。 skipfooter: 末尾要跳过的行(0-索引)。 convert_float: 将整型浮点数转换为 所有数字数据将被读取为浮点数:Excel内部存储所有数字为浮点数。 注意:1.3.0版后已弃用: mangle_dupe_cols: 重复的列将被指定为‘X’, ‘X.1’, …’X.N’,而不是 ‘X’…’X’。 如果列中有重复的名称,传递False将导致数据被覆盖。 storage_options: 对于特定的存储连接有意义的额外选项, 如主机、端口、用户名、密码等, 如果使用的URL将被 如果使用本地路径或类文件缓冲区提供此参数,将引发错误。 有关允许的键和值的集合,请参阅fsspec和后端存储实现文档。 注意:1.2.0新版功能。 |
返回: | DataFrame 或 DataFrame的dict 从Excel文件中传递的DataFrame。 有关何时返回DataFrame的 请参阅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')