Pandas库read_excel()使用说明及 excel转换为tsv python实现方法一:

pandas.read_excel(io,sheet_name = 0,header = 0,names = None,index_col = None,usecols = None,squeeze = False,dtype = None, ...)

io:字符串,文件的路径对象。


sheet_name:None、string、int、字符串列表或整数列表,默认为0。字符串用于工作表名称,整数用于零索引工作表位置,字符串列表或整数列表用于请求多个工作表,为None时获取所有工作表。

对应操作
sheet_name=0第一张作为DataFrame
sheet_name=1第二张作为DataFrame
sheet_name=“Sheet1”第一张作DataFrame
sheet_name=[0,1,'Sheet5']第1页,第2页和第5页作为DataFrames的字典。

header:指定作为列名的行,默认0,即取第一行的值为列名。数据为列名行以下的数据;若数据不含列名,则设定 header = None。


names:默认为None,要使用的列名列表,如不包含标题行,应显示传递header=None


index_col:指定列为索引列,默认None列(0索引)用作DataFrame的行标签。


usecols:int或list,默认为None。

  • 如果为None则解析所有列
  • 如果为int则表示要解析的最后一列
  • 如果为int列表则表示要解析的列号列表
  • 如果字符串则表示以逗号分隔的Excel列字母和列范围列表(例如“A:E”或“A,C,E:F”)。范围包括双方。

squeeze:boolean,默认为False,如果解析的数据只包含一列,则返回一个Series。


dtype:列的类型名称或字典,默认为None。数据或列的数据类型。例如{'a':np.float64,'b':np.int32}使用对象保存存储在Excel中的数据而不解释dtype。如果指定了转换器,则它们将应用于dtype转换的INSTEAD。


skiprows:省略指定行数的数据,从第一行开始。


skipfooter:省略指定行数的数据,从尾部数的行开始。


dtype:字典类型{'列名1':数据类型,‘列名’:数据类型},设定指定列的数据类型。

其余参数不常使用,不做补充。

结合上面,今天把一个 excel转换为tsv文件,并且只保留前两列,采用代码如下:

import pandas as pd

df = pd.read_excel('test.xlsx', sheet_name='Sheet1', usecols=[0,1],header=None)	
print('开始写入txt文件...')
df.to_csv('test.tsv', header=None, sep='\t', index=False)	
print('文件写入成功!')


参考链接:https://www.jianshu.com/p/d1eed925509b

python快速将excel文件转化为txt文件_tszupup的博客-优快云博客_python将excel转为txt

<think>嗯,用户让我详细介绍pandasread_excelread_csv函数。首先,我需要确认自己对这些函数的了解程度。记得这两个函数是用来读取Excel和CSV文件的,属于pandas的IO工具部分。 首先,我应该从基本功能开始介绍。比如,read_csv用于读取逗号分隔值文件,而read_excel处理Excel文件,可能支持.xls和.xlsx格式。需要提到它们返回的都是DataFrame对象,这是pandas的核心数据结构。 接下来,参数部分很重要。用户可能想知道常用的参数有哪些。对于read_csv,sep或delimiter参数指定分隔符,header指定标题行,index_col设置索引列,dtype定义数据类型,na_values处理缺失值。而read_excel的参数可能有所不同,比如sheet_name指定工作表,可能还有usecols来选择特定列,engine参数用于处理不同版本的Excel文件。 还需要注意些常见问题。例如,读取CSV时编码问题,尤其是中文文件可能会遇到乱码,这时需要指定encoding='gbk'或'utf-8'。对于大文件,可以使用chunksize分块读取。在Excel方面,可能会提到如何处理多个工作表,或者读取特定区域的数据,比如使用skiprows和nrows跳过行或限制读取行数。 另外,性能方面,CSV通常比Excel读取快,尤其是大文件。可能还需要提到如何处理日期解析,使用parse_dates参数,或者在读取时转换数据类型,避免后续处理麻烦。 用户可能的实际应用场景包括数据清洗、数据分析前的数据加载,所以需要给出些示例代码,展示基本用法和常见参数的组合。比如,读取带有特定编码的CSV,或者读取Excel的第二个工作表,并选择某些列。 还要注意潜在的问题,比如Excel文件依赖的(xlrd,openpyxl),可能需要用户安装这些。在read_csv中,处理不规则的分隔符或引用符时,可能需要调整参数,比如quotechar或escapechar。 最后,总结两者的适用场景,帮助用户根据文件类型选择合适的函数。可能还要提到读取后的数据检查,比如使用head()查看前几行,或者info()查看数据类型和缺失情况。 需要确保结构清晰,分点说明,每个函数单独介绍,再比较异同。同时,保持语言口语化,避免过于技术化的术语,但又要准确。还要检查是否有遗漏的重要参数或常见问题,确保信息的全面性和实用性。</think>好的,我来为您详细对比介绍pandas的这两个核心数据读取函数: # read_csv(读取CSV文件) **基本功能**:读取逗号分隔的文本文件(默认分隔符为`,`),支持.tsv等变种格式 **核心参数**: ```python pd.read_csv( filepath, # 文件路径(支持URL) sep=',', # 自定义分隔符(如\t处理tsv) header=0, # 指定标题行(None表示无标题) names=[...], # 自定义列名(覆盖原有标题) index_col=0, # 指定索引列(支持多列列表) dtype={'列名':类型}, # 强制指定列数据类型 parse_dates=True, # 自动解析日期格式列 na_values=['NA'], # 自定义缺失值标识 encoding='utf-8', # 指定编码(中文常用gbk) nrows=1000, # 仅读取前N行 chunksize=500 # 分块读取(处理大文件) ) ``` **典型应用场景**: ```python # 读取含中文的CSV df = pd.read_csv('data.csv', encoding='gbk') # 处理不规则分隔符 df = pd.read_csv('data.txt', sep='\s+') # 任意空白分隔 # 大文件分块处理 chunk_iter = pd.read_csv('big_data.csv', chunksize=10000) for chunk in chunk_iter: process(chunk) ``` # 二、read_excel(读取Excel文件) **基本功能**:读取.xls/.xlsx格式的Excel文件,支持多工作表操作 **核心参数**: ```python pd.read_excel( io, # 文件路径或ExcelFile对象 sheet_name=0, # 工作表名称/序号(支持多表) header=0, # 标题行位置 names=[...], # 自定义列名 index_col=None, # 索引列设置 usecols='A:C,E', # 指定读取列范围(字母或数字) dtype={...}, # 列类型指定 na_values=[''], # 缺失值定义 engine=None # 自动选择引擎(xlrd/openpyxl) ) ``` **典型应用场景**: ```python # 读取指定工作表 df = pd.read_excel('data.xlsx', sheet_name='Sheet2') # 读取指定单元格区域(B2到D100) df = pd.read_excel('data.xls', usecols='B:D', skiprows=1, nrows=98) # 处理老版本Excel文件 df = pd.read_excel('old_data.xls', engine='xlrd') ``` # 三、核心差异对比 | 特性 | read_csv | read_excel | |---------------------|-------------------------------|-----------------------------| | 文件类型 | 纯文本(CSV/TSV等) | 二进制(.xls/.xlsx) | | 多表支持 | 不支持 | 通过sheet_name参数实现 | | 性能 | 更快(适合大数据) | 较慢(需要解析表格结构) | | 内存使用 | 更高效 | 较高 | | 特殊格式处理 | 需处理编码、分隔符等 | 需处理单元格格式、公式等 | | 依赖 | 无额外依赖 | 需要xlrd/openpyxl | # 四、实用技巧 1. **混合使用参数**: ```python # 跳过前2行,读取B到E列,指定数据类型 df = pd.read_excel('data.xlsx', skiprows=2, usecols='B:E', dtype={'ID': str, 'Price': float}) ``` 2. **日期解析优化**: ```python # 明确指定日期列和格式 df = pd.read_csv('sales.csv', parse_dates=['order_date'], date_format='%Y%m%d') ``` 3. **处理不规则数据**: ```python # 跳过页脚注释行,处理多种缺失值标记 df = pd.read_csv('data.csv', skipfooter=3, # 跳过最后3行 na_values=['N/A', 'NULL', '--'], engine='python') ``` 4. **性能优化**: ```python # 仅加载需要的列加快读取速度 cols = ['name', 'age', 'gender'] df = pd.read_csv('big_data.csv', usecols=cols) ``` 建议根据实际需求选择: - 优先使用CSV格式进行数据交换(更通用、更高效) - Excel适合包含多工作表、复杂格式的场景 - 读取后建议立即使用`df.info()`检查数据加载情况
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值