【Python】Python读取CSV文件

news/2024/11/9 10:15:06/

CSV文件是一种常见的数据存储格式,很多人在日常工作中需要使用Python处理CSV文件。Python提供了多种方法来读取CSV文件,包括使用标准库、第三方库和内置函数。本文将介绍多种Python读取CSV文件的方法。

使用Python内置csv库读取CSV文件

Python标准库中的csv模块提供了方便的读取和写入CSV文件的方法。下面是一个示例代码:

import csvwith open('file.csv', 'r', encoding='utf-8') as csvfile:reader = csv.reader(csvfile)for row in reader:print(row)

在上面的代码中,我们打开file.csv文件并使用csv.reader()函数读取文件。这个函数返回一个迭代器对象,我们可以使用for循环遍历每一行,并打印出来。需要注意的是,open()函数的encoding参数是必须的,否则可能会出现编码问题。

使用pandas库读取CSV文件

除了使用Python内置的csv模块,我们还可以使用pandas库来读取CSV文件。pandas是一个强大的数据处理库,可以轻松地处理和分析大型数据集。下面是一个示例代码:

import pandas as pddf = pd.read_csv('file.csv')
print(df)

在上面的代码中,我们使用pd.read_csv()函数读取文件,并将其赋值给一个pandas DataFrame对象。然后,我们使用print()函数打印出整个DataFrame,它将显示整个CSV文件的内容。需要注意的是,pandas会自动检测分隔符和引号。

使用numpy库读取CSV文件

numpy是一个常用的科学计算库,它也提供了读取CSV文件的方法。下面是一个示例代码:

import numpy as npdata = np.genfromtxt('file.csv', delimiter=',', dtype=None, encoding='utf-8')
print(data)

在上面的代码中,我们使用np.genfromtxt()函数读取文件,并将其赋值给一个numpy数组。这个函数可以自动识别分隔符和缺失值,并返回一个二维数组。需要注意的是,delimiter参数是必须的,否则函数将无法解析文件。

使用csvkit库读取CSV文件

csvkit是一个专门用于处理CSV文件的第三方库,它提供了多种方法来读取和处理CSV文件。下面是一个示例代码:

from csvkit import CSVKitReaderwith open('file.csv', 'r', encoding='utf-8') as csvfile:reader = CSVKitReader(csvfile)for row in reader:print(row)

在上面的代码中,我们使用CSVKitReader()函数读取文件,并将其赋值给一个迭代器对象。这个函数可以自动识别分隔符和引号,并返回一个迭代器对象。需要注意的是,这个库需要单独安装。

使用pypyodbc库读取CSV文件

pypyodbc是一个用于连接和操作数据库的Python库,它也可以用来读取CSV文件。下面是一个示例代码:

import pypyodbcconn = pypyodbc.connect('Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=file.csv;')
cur = conn.cursor()
cur.execute('SELECT * FROM [Sheet1$]')
for row in cur.fetchall():print(row)

在上面的代码中,我们使用pypyodbc.connect()函数连接CSV文件,并使用SQL语句读取文件。需要注意的是,这个库需要单独安装,并且需要安装对应的ODBC驱动。

总结

本文介绍了多种方法来读取CSV文件,包括使用Python内置csv库、pandas库、numpy库、csvkit库和pypyodbc库。根据实际需求选择适合自己的方法。使用Python处理CSV文件,可以大大提高工作效率。


http://www.ppmy.cn/news/87468.html

相关文章

【总结876

学习目标: 月目标:5月(1800基础部,背诵15篇短文,熟词僻义300词基础词) 周目标:1800高数基础部分,英语背3篇文章并回诵 每日必复习(5分钟) 只看了相似对角化…

AI技术:智慧交通时代的道路识别(文末送书四本)

前言: Hello大家好,我是Dream。 自动驾驶是当前最热门的技术之一,而道路识别则是自动驾驶系统中的重要一环。它需要自动驾驶车辆能够识别和解读道路标志、路面标线、交通信号灯等道路条件,及时准确地做出驾驶决策。接下来Dream将带…

利用prusa 3d打印地形模型 如何合理切片并提高打印速度

如上图,我们选择打印一个宽10cm 的地形模型,通过prusa切片,显示时间为22小时31分钟。这个速度大概一天,确实不是我们要的速度,如何提高速度又不失去打印细节且不增加失败风险呢。 1.减少填充 10%的填充对于创想三维en…

洛谷 P1049 装箱问题- 01背包-动态规划

题目描述 有一个箱子容量为 V V V,同时有 n n n 个物品,每个物品有一个体积。 现在从 n n n 个物品中,任取若干个装入箱内(也可以不取),使箱子的剩余空间最小。输出这个最小值。 输入格式 第一行共一…

货拉拉Java开发实习

目录 1.Java的重载和重写有什么区别2.什么情况下需要用到重载3.有很多个字符串和变量,需要把它们加起来,这时候用String会有什么问题4.有没有其它的替代方案5.StringBuffer和StringBuilder有什么区别6.一个自定义对象,分别创建了两个实例&…

安全中级2:nginx的中间件漏洞

目录 一、nginx解析php的流程 1.原理 2.CGI、FastCGI、PHP-FPM、PHP-CG、WrapperI的定义 二、Fastcgi协议 1.Fastecgi Record 2.Fastcgi Type 3.PHP-FPM(FastCGI进程管理器) 4.总结FastCGI解析的流程 三、nginx配置错误导致的漏洞 1.CRLF注入漏洞($uri解…

二叉树的相关知识

1.树概念及结构 1.1树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点&#…

LeetCode 674 最长连续递增序列

题目&#xff1a; 给定一个未经排序的整数数组&#xff0c;找到最长且 连续递增的子序列&#xff0c;并返回该序列的长度。连续递增的子序列 可以由两个下标 l 和 r&#xff08;l < r&#xff09;确定&#xff0c;如果对于每个 l < i < r&#xff0c;都有 nums[i] <…