在Python中读取文件

一、读取CSV (Comma-Separated Values) 文件

1、使用pd.read_csv() 函数

d.read_csv() 是 Pandas 库中用于读取 CSV (Comma-Separated Values) 文件并将其转换为一个 DataFrame 对象的函数。DataFrame 是 Pandas 中用于存储和操作结构化数据的主要数据结构。

常用参数

  • filepath_or_buffer: 文件路径或类文件对象(如 StringIO)。
  • sep: 字段分隔符,默认为逗号 。如果你的 CSV 文件使用其他分隔符(如制表符 \t),你需要指定这个参数。
  • header: 指定作为列名的行,默认为 0(第一行)。如果文件没有列名,可以设置为 None
  • names: 列名列表,如果文件中没有列标题行,可以通过此参数提供。
  • index_col: 用作行索引的列编号或列名。可以用单个列名或编号,也可以用列名的列表来创建多级索引。
  • usecols: 返回一个数据子集的列名称或编号。
  • dtype: 指定列的数据类型。可以是一个字典,将列名映射到数据类型,或者是一个用于所有列的数据类型(如 float)。
  • skiprows: 需要忽略的行数(从文件开始算起)或需要跳过的行号列表(从 0 开始)。
  • nrows: 需要读取的行数(从文件开始算起)。
  • encoding: 文件编码格式,例如,对于包含非ASCII字符的文本文件,通常使用 utf-8
import pandas as pd         #导入 Pandas 库

# 指定分隔符
df = pd.read_csv('path_to_your_file.tsv', sep='\t')

#跳过行和读取特定行数
df = pd.read_csv('path_to_your_file.csv', skiprows=2, nrows=10)#跳过前两行,并只读取接下来的 10 行

#指定列的数据类型
df = pd.read_csv('path_to_your_file.csv', dtype={'column1': str, 'column2': float})# column1 读取为字符串,column2 读取为浮点数

#使用列名的子集
df = pd.read_csv('path_to_your_file.csv', usecols=['column1', 'column3'])#只读取 column1 和 column3

#读取没有列标题的文件
df = pd.read_csv('path_to_your_file_without_header.csv', header=None, names=['col1', 'col2', 'col3'])  #header=None 表示没有列标题行,names 参数提供一个列表来指定列的名称

二、读取Excel文件

在Python中读取Excel文件,最常用的库是openpyxl(针对.xlsx格式)和xlrd(针对.xls格式,但请注意xlrd从版本2.0开始不再支持.xlsx文件)。

推荐使用openpyxlpandas则成为了处理.xlsx文件

1、使用openpyxl读取

首先,需要安装openpyxl库:

pip install openpyxl

然后,可以使用以下代码读取.xlsx文件:

from openpyxl import load_workbook  
  
# 加载工作簿  
wb = load_workbook(filename='example.xlsx')  
  
# 激活工作表  
sheet = wb.active  
  
# 读取A1单元格的值  
value = sheet['A1'].value  
print(value)  
  
# 遍历所有行  
for row in sheet.iter_rows(values_only=True):  
    print(row)

2、使用pandas读取

pandas是一个强大的数据分析和处理库,它也提供了读取Excel文件的功能。首先,需要安装pandasopenpyxlpandas用于数据处理,openpyxl用于读取.xlsx文件):

pip install pandas openpyxl

然后,可以使用以下代码读取Excel文件:

import pandas as pd  
  
# 读取Excel文件  
df = pd.read_excel('example.xlsx', engine='openpyxl')  

# 显示前几行数据  
print(df.head())  
  
# 访问特定列  
print(df['ColumnName'])

注意:

engine='openpyxl'参数指定了用于读取Excel文件的底层库。pandas支持多种Excel文件读取引擎,但openpyxl是专门用于读取.xlsx(即Excel 2007及以上版本的文件)文件的。

如果不指定engine参数,pandas通常会自动选择适当的引擎来读取文件,但这样可能会出现兼容性问题或错误。

3、注意

使用pandas读取Excel文件的好处在于,它提供了丰富的数据处理功能,如数据清洗、筛选、分组等。

因此,如果只是需要读取Excel文件并对其进行简单的操作(如获取单元格值),openpyxl可能就足够了。但如果需要进行复杂的数据分析或处理,选pandas更好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值