Python中,常见的四种读取CSV文件的方式

1. 使用标准库csv模块

csv模块是Python标准库的一部分,提供了读取和写入CSV文件的功能。它允许你以迭代的方式读取文件,并可以自定义分隔符、引号字符等。

import csv  
  
with open('data.csv', mode='r', newline='', encoding='utf-8') as file:  
    csv_reader = csv.reader(file)  
    for row in csv_reader:  
        print(row)  # row是一个列表,包含了CSV文件中的一行

2. 使用pandas库的read_csv函数

pandas是一个强大的数据分析和处理库,它提供了read_csv函数来读取CSV文件,并将数据加载到一个DataFrame对象中,方便进行数据分析。

import pandas as pd  
  
df = pd.read_csv('data.csv')  
print(df)  # 打印整个DataFrame

3. 使用numpygenfromtxt函数(适用于数值数据)

虽然numpy主要用于数值计算,但它的genfromtxt函数也可以用来读取CSV文件(尤其是当文件主要是数值数据时)。不过,它不如pandascsv模块那样灵活或常用。

import numpy as np  
  
data = np.genfromtxt('data.csv', delimiter=',', skip_header=1)  # 假设第一行是标题行  
print(data)

注意:numpy更适合于数值数据的处理,如果CSV文件中包含非数值数据,使用numpy可能不太方便。

4. 使用sqlite3(如果CSV文件很大或需要SQL查询)

对于非常大的CSV文件,或者当你需要对数据进行SQL查询时,可以先将CSV文件加载到SQLite数据库中,然后使用SQL查询来检索数据。这种方法需要先将CSV文件导入到SQLite数据库中。

import sqlite3  
  
# 连接到SQLite数据库  
# 如果文件不存在,会自动在当前目录创建:  
conn = sqlite3.connect('example.db')  
c = conn.cursor()  
  
# 创建表  
c.execute('''CREATE TABLE IF NOT EXISTS data  
             (id INTEGER PRIMARY KEY, column1 TEXT, column2 TEXT)''')  
  
# 假设你的CSV文件没有标题行,使用以下命令(如果有标题行,需要先读取标题行并跳过)  
# 注意:这只是一个概念示例,实际中可能需要使用其他库(如pandas)来辅助导入CSV到SQLite  
  
# 导入CSV到SQLite(通常使用pandas的to_sql函数更方便,但这里为了展示sqlite3的使用)  
# ...(实际上,这里需要更复杂的代码或借助pandas的to_sql方法)  
  
# 执行查询  
c.execute('SELECT * FROM data')  
print(c.fetchall())  
  
# 关闭连接  
conn.close()

注意:上述SQLite的例子主要是为了展示概念。在实际操作中,将CSV文件直接导入SQLite数据库,特别是大文件时,通常会使用pandasto_sql方法或其他工具来辅助完成。

综上所述,对于大多数Python项目来说,使用pandasread_csv函数是最方便、最强大的方法,特别是对于数据分析和科学计算领域。然而,在其他特定场景下,如仅需要读取简单的CSV数据或进行数值计算时,使用csv模块或numpygenfromtxt函数可能更为合适。对于非常大的数据集或需要SQL查询的场景,则可以考虑使用SQLite或其他数据库系统。

如果你正在学习Python,但是找不到方向的话可以试试我这一份学习方法和籽料呀!

点击 领取籽料(不要米米)

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值