pd.read_excel参数含义

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值