登录
首页 >  文章 >  python教程

Python读取CSV的几种方法详解

时间:2025-11-27 19:19:02 283浏览 收藏

想要高效读取CSV文件?Python提供了多种方法!本文为你解析Python读取CSV文件的三大核心技巧,助你轻松应对不同场景。首先,标准库`csv`模块简单易用,适合快速读取为列表或字典。其次,`pandas`库的`read_csv`函数功能强大,是数据分析的首选,支持DataFrame操作、自动类型推断及大文件分块读取。最后,`numpy`库则专注于纯数值数据的快速加载,`loadtxt`和`genfromtxt`助你高效处理数值型CSV文件。此外,文章还分享了处理编码、分隔符、中文列名等常见问题的实用技巧,让你在实际应用中更加得心应手。无论是小文件还是大数据,选择合适的方法,让你的数据处理效率倍增!

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

python读取csv的不同形式

Python读取CSV文件有多种方式,每种适合不同场景。最常用的包括使用内置的csv模块、pandas库,以及用numpy处理数值型数据。下面介绍几种主要方法及其适用情况。

1. 使用 csv 模块读取(基础方式)

csv模块是Python标准库的一部分,适合处理结构简单、不需要复杂分析的CSV文件。

常见用法:

  • 读取为列表:每一行是一个列表,按列顺序访问数据
  • 读取为字典:使用csv.DictReader,列名作为键,更易读

示例代码:

import csv
<h1>读取为列表</h1><p>with open('data.csv', 'r', encoding='utf-8') as file:
reader = csv.reader(file)
for row in reader:
print(row)  # 每行是列表</p><h1>读取为字典</h1><p>with open('data.csv', 'r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for row in reader:
print(row['name'], row['age'])  # 按列名访问
</p>

2. 使用 pandas 读取(推荐用于数据分析)

pandas是最常用的数据分析库,pd.read_csv()功能强大,支持自动类型推断、缺失值处理、指定列、跳行等。

优点:

  • 一行代码加载成DataFrame,便于后续处理
  • 支持压缩文件、URL路径、大文件分块读取
  • 可指定编码、分隔符、索引列等参数

示例:

import pandas as pd
<h1>基本读取</h1><p>df = pd.read_csv('data.csv')</p><h1>指定参数</h1><p>df = pd.read_csv('data.csv', encoding='gbk', sep=';', index_col='id')</p><h1>只读前100行(适合大文件)</h1><p>df = pd.read_csv('large.csv', nrows=100)</p><h1>分块读取</h1><p>chunk_reader = pd.read_csv('huge.csv', chunksize=1000)
for chunk in chunk_reader:
process(chunk)  # 逐块处理
</p>

3. 使用 numpy 读取(适用于纯数值数据)

如果CSV只包含数字,可以用numpy.loadtxt()genfromtxt()快速加载为数组。

注意:

  • 数据必须规整,不能有缺失或混合类型
  • genfromtxt()支持处理缺失值

示例:

import numpy as np
<h1>简单读取(全为数字)</h1><p>data = np.loadtxt('numbers.csv', delimiter=',')</p><h1>支持缺失值</h1><p>data = np.genfromtxt('data.csv', delimiter=',', skip_header=1)
</p>

4. 其他情况处理技巧

实际使用中常遇到编码、分隔符、中文列名等问题,这里列出常见应对方式:

  • 乱码问题:尝试encoding='utf-8''gbk''latin1'
  • 分隔符不是逗号:如制表符\t,用sep='\t'delimiter='\t'
  • 无标题行:设置header=Nonenames=['col1','col2']
  • 跳过某些行:使用skiprows参数

基本上就这些常用方式。小文件或学习阶段可用csv模块,做数据分析首选pandas,纯数值计算考虑numpy。根据数据特点选择合适方法,效率更高。

以上就是《Python读取CSV的几种方法详解》的详细内容,更多关于Python,Numpy,csv文件,Pandas,csv模块的资料请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>