pandas read_excel官网详解

Pandas Excel读取指南
本文详细介绍使用Pandas库从Excel文件中读取数据的方法,包括本地文件、URL链接等多种来源,涵盖各种参数配置,例如指定列、行、日期解析等。
import pandas as pd
#官网链接:https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html#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)

#io可以为本地路径,http、ftp路径等(需要依赖xlrd库),以及字节流等
#二进制流打开方式:
# with open(r'D:\python\文档\testdoc\a.xlsx','rb') as f:
#     b = pd.read_excel(f,sheet_name=0)
# #excelFile方式
# xls = pd.ExcelFile(r'D:\python\文档\testdoc\excel操作技巧(自制).xls')
# c = pd.read_excel(xls,sheet_name=0)
#excelFile方式,参数说明
#sheetname 默认0,可为字符串名字;可以为列表,如[0,1]或['Sheet1','Sheet2'],返回字典,{0:DataFrame...}
#header 默认0为标题行,若无标题行可设置为None,如设置为3,则0-2行不会被读取,若设为None,则是0开始的数字行索引。
#index_col 指定列索引,默认为None,默认情况下是0开始的数字列索引
#usecols,指定读取的列,可为字符串,可用字母表示范围'A:D',可为int列表[0,1,2],可为函数(返回True)
#nrows 返回读取的行数
#engine 指定处理引擎
#skiprows 跳过指定的行,list-like, int, or callable
#skipfooterint, 跳过指定的行尾
#dtype 指定某些列的数据类型   dtype={'codes': str} or dtype={1: str}
#converters 强制转换列数据类型 converters={'日期':str}, value值为转换函数,优先级高于dtype
#na_filter 是否标记空值,默认为True,关闭可以提高性能,关闭后不会识别空值,关闭后keep_default_na及na_values自动失效
#keep_default_na 解析数据时是否包括默认NAN值,默认开启
#na_values scalar, str, list-like, or dict,指定哪些string会被识别为空值,na_filter及keep_default_na为True时有效.
#parse_dates 尝试将数据解析为日期格式,{'时间':['年份','月份']};将会尝试解析年份和月份拼接起来,并将列名重置为‘时间’
#parse_dates=True : 尝试解析index为日期格式;parse_dates=[['年份','月份']] 或 parse_dates=[[3,4]],尝试将其解析并且拼接起来,拼接字符串放首列。
#parse_dates=[0,1,2,3,4] : 尝试解析0,1,2,3,4列为时间格式;
#date_parser 指定解析格式去解析某种不常见的格式,如:date_parser=lambda x:pd.to_datetime(x,format=’%Y年%m月%d日’),需在parse_dates中指定需要转换时间的列
a = pd.read_excel(r'D:\python\文档\testdoc\c.xlsx',sheet_name=0,header=0,index_col=None,
                  usecols='A:H',nrows=19,skiprows=[2,4],dtype={6: str},na_filter=True,keep_default_na=True,
                  parse_dates=['日期2'],date_parser=lambda x:pd.to_datetime(x,format='%Y年%m月%d日'),convert_float=False)

#通过url打开文件
headers = {"User-Agent": "pandas"}
df = pd.read_csv(
    "https://download.bls.gov/pub/time.series/cu/cu.item",
    sep="\t",
    storage_options=headers
)

<think>我们正在回答关于pandasread_excel方法参数详解的问题。根据引用[1]和引用[2],我们知道read_excelpandas中用于读取Excel文件的函数。用户想要了解该方法的详细参数说明。我们将按照以下步骤进行:1.介绍read_excel函数的基本用法2.详细说明常用参数及其作用3.举例说明一些关键参数的用法注意:由于引用中提供的信息有限,我们将结合pandas官方文档和常见使用经验进行说明。引用[1]给出了一个基本示例:importpandasaspddf=pd.read_excel('test.xls')print(df.head())引用[2]指向了pandas官方文档(0.22版本)的read_excel页面,我们可以参考最新文档。以下内容基于pandas1.3.5版本的文档进行说明,但参数基本一致。详细参数说明:1.io:字符串或字节流或Excel文件这是必须指定的参数,可以是文件路径(字符串),也可以是文件类对象(例如使用open打开的文件对象)或原始字节流。2.sheet_name:str,int,list,orNone,default0指定要读取的工作表。*字符串:工作表的名称*整数:工作表的索引(0表示第一张工作表)*列表:可以指定多个工作表,返回一个字典,键为工作表名,值为DataFrame*None:读取所有工作表,返回字典默认值为0,即第一张工作表。3.header:int,listofint,default0指定作为列名的行号。默认0,即第一行(0-indexed)。*如果指定为整数,则将该行作为列名。*如果有多级列名,可以传递一个整数列表(例如[0,1]表示前两行作为多级列名)。*如果数据中没有列名,则设置header=None。4.names:array-like,defaultNone用于指定列名。如果数据中不包含标题行,则可以传递此参数来指定列名。*如果文件中有标题行,但你想覆盖,也可以使用此参数。*注意:如果同时设置了header(不为None)和names,则names会覆盖header中的列名。5.index_col:int,listofint,defaultNone指定用作行索引的列(可以是一列或多列)。可以传递整数或整数列表。6.usecols:int,str,list-like,orcallabledefaultNone指定要读取的列。可以是:*整数:表示前n列(不建议,因为会忽略后面的列)*字符串:例如"A,C,E"或"A:C",表示列范围(Excel风格的列字母)*列表:可以是列的整数索引(0-indexed)或字符串列名(如果已经有列名的话)*回调函数:用于根据列名进行过滤7.dtype:Typenameordictofcolumn->type,defaultNone指定列的数据类型。可以是一个类型(应用于所有列)或一个字典(将列名或索引映射到类型)。8.skiprows:list-like,int,callable,defaultNone跳过指定的行数(从文件开始处算起)或要跳过的行号列表(0-indexed)。*例如,skiprows=5跳过前5行。*skiprows=[0,1,2]跳过前三行。9.nrows:int,defaultNone指定要读取的行数(从文件开始处,不包括跳过的行)。10.na_values:scalar,str,list-like,ordict,defaultNone指定哪些值应该被识别为NaN(缺失值)。可以是一个字符串,一个列表,或一个字典(按列指定)。11.keep_default_na:bool,defaultTrue如果为True,则在解析时使用默认的NaN值列表(如'NA','N/A','NaN'等都会被解析为NaN)。如果为False,则只有你通过na_values指定的值会被视为NaN。12.converters:dict,defaultNone用于对某些列进行预处理转换的函数字典。字典的键为列索引(整数)或列名(字符串),值为转换函数。13.engine:str,defaultNone指定用于解析的引擎。可选值为:'xlrd'(读取.xls),'openpyxl'(读取.xlsx)或'odf'(读取.ods)。一般情况下,pandas会根据文件扩展名自动选择引擎。14.其他参数:例如squeeze(已弃用),dtype,true_values,false_values,skipfooter(跳过文件末尾的行)等。由于参数非常多,我们只列出常用的,更详细的请参考官方文档。示例:1.读取指定工作表,并指定列名:```pythondf=pd.read_excel('test.xlsx',sheet_name='Sheet1',names=['col1','col2','col3'])```2.读取前两列,并跳过第一行(将第二行作为列名):```pythondf=pd.read_excel('test.xlsx',usecols=[0,1],skiprows=1)```3.使用列索引作为行索引:```pythondf=pd.read_excel('test.xlsx',index_col=0)```4.读取多个工作表:```python#返回一个字典,键是工作表名,值是DataFramedfs=pd.read_excel('test.xlsx',sheet_name=['Sheet1','Sheet2'])```5.只读取前100行:```pythondf=pd.read_excel('test.xlsx',nrows=100)```注意:当读取较大的Excel文件时,可能会消耗较多内存,可以使用chunksize参数分块读取,但read_excel的chunksize参数返回的是一个迭代器(TextFileReader对象),而非DataFrame。由于Excel文件格式复杂,read_excel可能无法处理某些特殊情况,这时可能需要结合其他库(如openpyxl)进行预处理。以上是read_excel方法的参数详解。接下来,根据要求,我们需要生成相关问题。</think> ### pandas.read_excel() 参数详解 `pandas.read_excel()` 是 Pandas 库中用于读取 Excel 文件的核心方法。以下是对其关键参数的详细说明(基于 pandas 1.5.3 文档): #### 📌 核心参数 1. **`io`** (必需) - 类型:`str, bytes, ExcelFile, xlrd.Book, path object, or file-like object` - 说明:Excel 文件路径或对象。支持本地路径、URL 或文件流。 ```python pd.read_excel('data.xlsx') # 读取本地文件 pd.read_excel('https://example.com/data.xlsx') # 读取在线文件 ``` 2. **`sheet_name`** - 类型:`str, int, list, or None`(默认:`0`) - 功能:指定读取的工作表 - 示例: ```python pd.read_excel('data.xlsx', sheet_name=0) # 读取第一张表 pd.read_excel('data.xlsx', sheet_name='Sheet1') # 按名称读取 pd.read_excel('data.xlsx', sheet_name=[0, 2]) # 读取多个表 → 返回字典{表名: DataFrame} pd.read_excel('data.xlsx', sheet_name=None) # 读取所有表 → 返回字典 ``` #### 🧾 数据处理参数 3. **`header`** - 类型:`int, list of int`(默认:`0`) - 功能:指定列标题所在行号(0-indexed) ```python pd.read_excel('data.xlsx', header=2) # 第3行作为列名 pd.read_excel('data.xlsx', header=[0,1]) # 多级列名(前两行) ``` 4. **`names`** - 类型:`array-like`(默认:`None`) - 功能:自定义列名,覆盖原始标题 ```python pd.read_excel('data.xlsx', names=['ID', 'Name', 'Value']) ``` 5. **`index_col`** - 类型:`int, str, list of int/str`(默认:`None`) - 功能:指定行索引列 ```python pd.read_excel('data.xlsx', index_col=0) # 第一列作为索引 pd.read_excel('data.xlsx', index_col='ID') # 指定列名作为索引 ``` 6. **`usecols`** - 类型:`int, str, list-like, or callable`(默认:`None`) - 功能:选择特定列 ```python pd.read_excel('data.xlsx', usecols='A:C') # Excel列范围 (A-C) pd.read_excel('data.xlsx', usecols=[0, 2]) # 按索引选列 pd.read_excel('data.xlsx', usecols=['ID','Name']) # 按列名选列 ``` #### ⚙️ 高级控制参数 7. **`dtype`** - 类型:`dict`(默认:`None`) - 功能:指定列数据类型 ```python pd.read_excel('data.xlsx', dtype={'ID': str, 'Value': float}) ``` 8. **`na_values`** - 类型:`scalar, str, list-like, or dict`(默认:`None`) - 功能:自定义缺失值标识 ```python pd.read_excel('data.xlsx', na_values=['NA', 'N/A', '']) ``` 9. **`skiprows` / `nrows`** - 功能:跳过行/限制读取行数 ```python pd.read_excel('data.xlsx', skiprows=3) # 跳过前3行 pd.read_excel('data.xlsx', nrows=100) # 只读前100行 ``` 10. **`engine`** - 类型:`str`(默认:自动检测) - 可选值:`'xlrd'`, `'openpyxl'`, `'odf'` - 说明:根据文件类型选择解析引擎: - `.xls` → `xlrd` - `.xlsx` → `openpyxl` - `.ods` → `odf` #### ⚡ 完整调用示例 ```python import pandas as pd df = pd.read_excel( io='sales_data.xlsx', sheet_name='Q1', header=0, usecols=['Product', 'Revenue'], dtype={'Revenue': float}, na_values=['Missing'], skiprows=1, engine='openpyxl' ) ``` 📌 注意: - 当处理大型 Excel 文件时,建议指定 `engine` 参数避免自动检测开销[^1]。 - 读取特殊格式(如宏、图表)需用专用库(如 `openpyxl` 直接操作)[^2]。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值