答案:Python读取CSV文件主要有三种方法:1. 使用csv模块适合简单结构,可读取为列表或字典;2. pandas的read_csv最常用,支持DataFrame操作、类型推断和大文件分块;3. numpy适用于纯数值数据,用loadtxt或genfromtxt快速加载数组。

Python读取CSV文件有多种方式,每种适合不同场景。最常用的包括使用内置的csv模块、pandas库,以及用numpy处理数值型数据。下面介绍几种主要方法及其适用情况。
1. 使用 csv 模块读取(基础方式)
csv模块是Python标准库的一部分,适合处理结构简单、不需要复杂分析的CSV文件。
常见用法:
读取为列表:每一行是一个列表,按列顺序访问数据读取为字典:使用csv.DictReader,列名作为键,更易读
示例代码:
立即学习“Python免费学习笔记(深入)”;
import csv读取为列表
with open('data.csv', 'r', encoding='utf-8') as file:reader = csv.reader(file)for row in reader:print(row) # 每行是列表
读取为字典
with open('data.csv', 'r', encoding='utf-8') as file:reader = csv.DictReader(file)for row in reader:print(row['name'], row['age']) # 按列名访问
2. 使用 pandas 读取(推荐用于数据分析)
pandas是最常用的数据分析库,pd.read_csv()功能强大,支持自动类型推断、缺失值处理、指定列、跳行等。
优点:
一行代码加载成DataFrame,便于后续处理支持压缩文件、URL路径、大文件分块读取可指定编码、分隔符、索引列等参数
示例:
import pandas as pd基本读取
df = pd.read_csv('data.csv')
指定参数
df = pd.read_csv('data.csv', encoding='gbk', sep=';', index_col='id')
只读前100行(适合大文件)
df = pd.read_csv('large.csv', nrows=100)
分块读取
chunk_reader = pd.read_csv('huge.csv', chunksize=1000)for chunk in chunk_reader:process(chunk) # 逐块处理
3. 使用 numpy 读取(适用于纯数值数据)
如果CSV只包含数字,可以用numpy.loadtxt()或genfromtxt()快速加载为数组。
注意:
数据必须规整,不能有缺失或混合类型genfromtxt()支持处理缺失值
示例:
import numpy as np简单读取(全为数字)
data = np.loadtxt('numbers.csv', delimiter=',')
支持缺失值
data = np.genfromtxt('data.csv', delimiter=',', skip_header=1)
4. 其他情况处理技巧
实际使用中常遇到编码、分隔符、中文列名等问题,这里列出常见应对方式:
乱码问题:尝试encoding='utf-8'、'gbk'或'latin1'分隔符不是逗号:如制表符t,用sep='t'或delimiter='t'无标题行:设置header=None或names=['col1','col2']跳过某些行:使用skiprows参数
基本上就这些常用方式。小文件或学习阶段可用csv模块,做数据分析首选pandas,纯数值计算考虑numpy。根据数据特点选择合适方法,效率更高。
以上就是python读取csv的不同形式的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1381009.html
微信扫一扫
支付宝扫一扫