Python读取外部CSV格式文件的方法有多种,常用的方法包括使用内置的csv模块、pandas库以及numpy库等。Python内置的csv模块适合处理结构简单的CSV文件。通过csv.reader逐行读取数据,或用csv.DictReader将首行字段名映射为字典键,便于按列名访问。
python怎么读取csv文件?
在Python中,读取CSV文件有多种方法,以下是常见的几种方式及示例代码:
方法1:使用标准库 csv 模块
pythonimport csv# 读取CSV文件with open('example.csv', mode='r', encoding='utf-8') as file:csv_reader = csv.reader(file)# 逐行读取(每行是列表)for row in csv_reader:print(row) # 输出: ['列1值', '列2值', ...]# 读取为字典(首行为键)with open('example.csv', mode='r', encoding='utf-8') as file:csv_dict = csv.DictReader(file)for row in csv_dict:print(row['列名1'], row['列名2']) # 通过列名访问
参数说明:
encoding='utf-8':避免中文乱码,根据文件实际编码调整。
csv.DictReader:自动将首行作为字典的键。
方法2:使用 pandas
pythonimport pandas as pd# 读取CSV到DataFramedf = pd.read_csv('example.csv', encoding='utf-8')# 查看前5行print(df.head())# 访问列数据print(df['列名'].values) # 转为数组
优势:
直接处理为表格结构,支持筛选、统计等操作。
参数丰富(如 sep=';' 指定分隔符,na_values='NA' 处理缺失值)。
方法3:使用 numpy
pythonimport numpy as np# 读取CSV(假设无表头,纯数值)data = np.loadtxt('example.csv', delimiter=',', skiprows=1)print(data)
注意:
适合数值型数据,非数值内容需额外处理。
常见问题处理
文件路径:
若文件不在当前目录,使用绝对路径。
编码问题:
报错 UnicodeDecodeError 时,尝试 encoding='gbk' 或 'latin1'。
大文件优化:
使用 pandas.read_csv(..., chunksize=1000) 分块读取。
写入CSV:
pythondf.to_csv('output.csv', index=False, encoding='utf-8') # 不保存索引
总结
简单读取:用 csv 模块。
数据分析:用 pandas。
数值计算:用 numpy。
根据需求选择合适的方法即可!
对于数据分析场景,pandas.read_csv()更强大。它直接将CSV转为DataFrame,支持列筛选、缺失值处理等。可指定分隔符(如sep=';')、跳过表头(header=0)、处理缺失值(na_values='NA')。适合复杂数据清洗和统计操作。