pd.read_excel(io, sheet_name=0, header=0,names=None, index_col=None,usecols=None, squeeze=False,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrows=None,na_values=None, keep_default_na=True,verbose=False,parse_dates=False,date_parser=None,thousands=None,comment=None,skipfooter=0,convert_float=True, mangle_dupe_cols=True, **kwds)
一、参数解读
1、io
(1)作用:Excel 文件路径或文件对象(如 URL、文件句柄)。
(2)示例:
pd.read_excel('data.xlsx') # 本地文件
pd.read_excel('https://example.com/data.xlsx') # 网络文件
2、sheet_name
(1)作用:指定读取的工作表。
(2)可选值:
整数(从 0 开始,如 0 表示第一个工作表)
字符串(工作表名称,如 'Sheet1')
None(读取所有工作表,返回字典)
(3)示例:
pd.read_excel('data.xlsx', sheet_name=0) # 读取第一个工作表
pd.read_excel('data.xlsx', sheet_name='月度数据') # 按名称读取
3、header
(1)作用:指定列名(表头)所在的行号(从 0 开始)。
(2)默认:0(第一行为列名)。
(3)示例:
pd.read_excel('data.xlsx', header=2) # 第三行为列名
pd.read_excel('data.xlsx', header=None) # 无列名,自动生成数字列名
4、names
(1)作用:自定义列名列表,覆盖原有列名。
(2)示例:
pd.read_excel('data.xlsx', names=['ID', 'Name', 'Value'])
5、index_col
(1)作用:指定作为行索引的列(可以是列名或列序号)。
(2)示例:
pd.read_excel('data.xlsx', index_col=0) # 第一列作为索引
pd.read_excel('data.xlsx', index_col='ID') # 列名为 'ID' 的列作为索引
6、usecols
(1)作用:选择读取的列范围。
(2)格式:
列字母范围(如 'A:C' 或 'A,B,D:F')
列序号列表(如 [0, 2, 3])
列名列表(如 ['Name', 'Age'])
(3)示例:
pd.read_excel('data.xlsx', usecols='A:C') # 读取 A 到 C 列
pd.read_excel('data.xlsx', usecols=[0, 2]) # 读取第1列和第3列
pd.read_excel('data.xlsx', usecols=['Name', 'Age']) # 按列名选择
7、dtype
(1)作用:指定列的数据类型(避免自动推断错误)。
(2)格式:字典 {'列名': 类型},如 {'Age': 'int', 'Price': 'float'}
(3)示例:
pd.read_excel('data.xlsx', dtype={'Age': 'int32', 'Score': 'float64'})
8、converters
(1)作用:自定义函数对列数据进行预处理。
(2)示例:将电话号码转换为字符串(避免丢失前导零):
converters = {'Phone': lambda x: str(x)}
pd.read_excel('data.xlsx', converters=converters)
9、na_values 数据处理参数
(1)作用:定义哪些值应被视为缺失值(NaN)。
(2)示例:
pd.read_excel('data.xlsx', na_values=['NA', 'N/A', '缺失'])
10、skiprows / nrows** 数据处理参数
(1)作用:跳过前 N 行 / 仅读取前 N 行。
(2)示例:
pd.read_excel('data.xlsx', skiprows=3) # 跳过前3行
pd.read_excel('data.xlsx', nrows=100) # 仅读取前100行
11、parse_dates 数据处理参数
(1)作用:将指定列解析为日期类型。
(2)示例:
pd.read_excel('data.xlsx', parse_dates=['Birthday']) # 解析列为日期
pd.read_excel('data.xlsx', parse_dates=[[1, 2, 3]]) # 合并多列为日期
12、date_parser 数据处理参数
(1)作用:自定义日期解析函数(需与 parse_dates 配合)。
(2)示例:
from datetime import datetime
date_parser = lambda x: datetime.strptime(x, "%Y-%m-%d %H:%M:%S")
pd.read_excel('data.xlsx', parse_dates=['Timestamp'], date_parser=date_parser)
13、engine 性能优化参数
(1)作用:指定解析引擎,可选 'openpyxl'(默认)或 'xlrd'。
(2)注意:xlrd 仅支持旧版 .xls 文件。
14、memory_map 性能优化参数
(1)作用:内存映射文件(适用于大文件,但可能不稳定)。
15、true_values / false_values** 其他实用参数
(1)作用:定义哪些值应被解析为布尔值 True 或 False。
(2)示例:
pd.read_excel('data.xlsx', true_values=['Yes', 'T'], false_values=['No', 'F'])
16、skipfooter 其他实用参数
(1)作用:跳过文件末尾的 N 行。
(2)示例:
pd.read_excel('data.xlsx', skipfooter=2) # 跳过最后2行
17、thousands 其他实用参数
(1)作用:指定千分位分隔符(如 ',' 或 '.')。
(2)示例:
pd.read_excel('data.xlsx', thousands=',') # 将 "1,000" 解析为 1000
二、常见问题与示例
1、场景 1:读取特定列并指定类型
df = pd.read_excel(
'sales.xlsx',
usecols=['Product', 'Price', 'Quantity'],
dtype={'Price': 'float32', 'Quantity': 'int16'}
)
2、场景 2:处理复杂日期格式
# 自定义日期解析函数
def custom_date_parser(date_str):
return pd.to_datetime(date_str, format='%d-%m-%Y %H:%M')
df = pd.read_excel(
'log.xlsx',
parse_dates=['EventTime'],
date_parser=custom_date_parser
)
3、场景 3:跳过注释行和页脚
df = pd.read_excel(
'data.xlsx',
skiprows=5, # 跳过前5行(如文件头部的注释)
skipfooter=3 # 跳过最后3行(如页脚的总计)
)
三、总结
1、关键参数:
io, sheet_name, header, usecols, dtype, parse_dates。
2、错误处理:
若列名重复,设置 mangle_dupe_cols=True(默认)。
3、性能优化:
大文件建议分块读取(如 chunksize=1000)。