如何在 Python 中使用 CSV 文件进行读写?

在这里插入图片描述
如何在 Python 中使用 CSV 文件进行读写?

文章目录

  • 一、说明
  • 二、什么是 CSV?
  • 三、使用 csv.reader 在 Python 中读取 CSV 文件的步骤
  • 四、使用 with() 语句实现代码
  • 五、如何使用 .readlines() 在 Python 中读取 CSV 文件?
  • 六、如何使用 Pandas 在 python 中读取 CSV 文件?
  • 七、使用 csv.writer 编写 CSV 文件
  • 八、使用 csv 编写 CSV 文件。DictWriter 的
  • 九、结论

一、说明

CSV 是您在数据科学领域工作时经常遇到的一种文件格式。它是一种存储表格数据的文本文件,具有更好的可读性、更易于理解和更快的处理速度。CSV 文件可以从 JSON 文件转换,也可以使用 Python 或 Java 创建。

在本文中,我们将向您介绍 CSV 文件的基础知识,并引导您了解在 Python 中读取和写入 CSV 文件的不同方法。我们专注于 Python,因为它有一个内置的 csv 库,可以轻松地从 CSV 文件中读取数据并写入其中。本文中的分步 Python 教程涵盖了如何在 Python 中读取和写入 CSV 文件,即使对于初学者来说,也一定简单易懂。此外,我们将解释如何解析数据,使用不同的数据类型和数据结构,以及使用 Python 3 中的 Pandas 和 NumPy 等库来处理 CSV 文件。

学习成果
从根本上了解什么是 CSV 文件以及它们在数据科学中的重要性。
掌握如何使用 Python 内置的 csv 库读取和写入 CSV 文件,包括实际示例。
了解如何利用 pandas 库读取和写入 CSV 文件,通过 DataFrames 和 pandas.read_csv 函数增强您的数据操作技能。
探索在 Python 中读取 CSV 文件的各种方法,例如使用 csv.reader、.readlines()、csv。DictReader 和 pd.read_csv.
了解使用 csv.writer、csv 将数据写入 CSV 文件的多种方法。DictWriter、.writelines() 和 pandas,确保您可以有效地处理数据导出任务。
培养从 CSV 文件中解析数据、使用不同数据结构以及了解 Python 编程上下文中的数据类型的技能。
了解如何将 NumPy 等库与 CSV 文件处理集成,以便在 Python 3 中执行更高级的数据处理任务。
本文是作为数据科学博客马拉松的一部分发表的。

二、什么是 CSV?

了解如何在 Python 中读取 CSV 文件对于任何数据科学家来说都是必不可少的。CSV 代表“逗号分隔值”,是将表格数据存储为纯文本的基本格式。作为数据科学家,我们在日常工作流程中经常会遇到 CSV 数据。因此,掌握在 Python 中读取 CSV 文件的能力对于有效处理和分析数据集至关重要。

Python 中 CSV 的结构
我们有一个名为“Salary_Data.csv”的文件。CSV 文件的第一行是标题。它包含字段/要素的名称,这些字段/要素在文件顶部显示为列名。

在标题之后,文件的每一行都是一个观察点/记录。记录的值用“逗号”分隔。
在这里插入图片描述

Python 中 CSV 的结构
在 Python 中读取 csv 文件
在 Python 中读取 CSV 文件主要有两种方法:

使用 csv 模块: 这是用于在 Python 中处理 CSV 文件的内置模块。它提供了读取和写入 CSV 数据的基本功能。
下面是如何使用 csv.reader 读取 CSV 文件的示例:

import csv# Open the CSV file in read mode
with open('data.csv', 'r') as csvfile:# Create a reader objectcsv_reader = csv.reader(csvfile)# Iterate through the rows in the CSV filefor row in csv_reader:# Access each element in the rowprint(row)

使用 Pandas 库:Pandas 是一个强大的 Python 数据分析库。它提供了一种更方便的方式来读取和操作 CSV 数据。
下面是如何使用 Pandas 读取 CSV 文件的示例:

import pandas as pd# Read the CSV file into a DataFrame
df = pd.read_csv('data.csv')# Access data in the DataFrame using column names or indexing
print(df['column_name'])
print(df.iloc[0])  # Access first row

在 Python 中读取 CSV 文件的方法列表
使用 csv.reader 读取 CSV 文件
使用 .readlines() 函数读取 CSV 文件
使用 Pandas 读取 CSV 文件
使用 csv 读取 CSV 文件。DictReader的
如何使用程序步骤在 Python 中读取 CSV 文件?
有许多不同的方法可以读取 CSV 文件中的数据,我们现在将一一看到。

三、使用 csv.reader 在 Python 中读取 CSV 文件的步骤

您可以使用 Python 的 csv 模块中的 csv.reader 对象读取 CSV 文件。使用 csv 阅读器读取 CSV 文件的步骤:

1 导入 CSV 库
import csv

2 打开 CSV 文件
这。Python 中的 open() 方法用于打开文件并返回 File 对象。

文件类型为“_io.TextIOWrapper“,这是由 open() 方法返回的文件对象。file = open(‘Salary_Data.csv’) type(file)

3 使用 csv.reader 对象读取 CSV 文件
csvreader = csv.reader(文件)

4 提取字段名称
创建一个称为标头的空列表。使用 next() 方法获取标头。
.next() 方法返回当前行并移动到下一行。
第一次运行 next() 时,它会返回标头,下次运行时,它会返回第一条记录,依此类推。

header = []
header = next(csvreader)
header

CSV 标头中的字段名称 [python read csv]

5 提取行/记录
创建一个名为 rows 的空列表,循环访问 csvreader 对象,并将每一行追加到行列表中。

rows = []
for row in csvreader:
rows.append(row)
rows

在这里插入图片描述

csv 中的行/记录 [python 读取 csv]

6 关闭文件
.close() 方法用于关闭打开的文件。一旦关闭,我们就无法对其执行任何操作。

file.close()

读取 CSV Python 的完整代码

import csv
file = open("Salary_Data.csv")
csvreader = csv.reader(file)
header = next(csvreader)
print(header)
rows = []
for row in csvreader:rows.append(row)
print(rows)
file.close()

当然,我们可能会忘记关闭打开的文件。为了避免这种情况,我们可以使用 with() 语句来自动释放资源。简单来说,如果我们使用 with() 语句,则无需调用 .close() 方法。

四、使用 with() 语句实现代码

基本语法:使用 open(filename, mode) 作为alias_filename:

模式:

‘r’ – 读取现有文件,
‘w’ – 如果给定文件不存在,则创建一个新文件并写入该文件,
‘a’ – 附加到现有文件内容,
‘+’ – 创建一个用于读取和写入的新文件

import csv
rows = []
with open("Salary_Data.csv", 'r') as file:csvreader = csv.reader(file)header = next(csvreader)for row in csvreader:rows.append(row)
print(header)
print(rows)

CSV python 文件 [python read csv]
另请参阅: 数据科学创新的演变和未来

五、如何使用 .readlines() 在 Python 中读取 CSV 文件?

现在的问题是——“是否可以仅使用 open() 和 with() 语句而不使用 csv 库来获取标题和行?我看看。。。

.readlines() 方法就是答案。它以列表的形式返回文件中的所有行。列表中的每个项目都是 CSV 文件的一行。

file.readlines() 的第一行是标题,其余是记录。

with open('Salary_Data.csv') as file:content = file.readlines()
header = content[:1]
rows = content[1:]
print(header)
print(rows)

使用 .readlines() 的 CSV 文件 [python 读取 csv]
**可以使用 .strip() 方法删除输出中的“n”。

如果我们有一个包含数百个特征和数千条记录的庞大数据集,会怎么样?是否可以处理列表??

熊猫图书馆来了。

六、如何使用 Pandas 在 python 中读取 CSV 文件?

让我们来看看如何使用 pandas 读取 CSV 文件中的数据。

Step1: 导入 pandas 库
import pandas as pd
Step2:使用 read_csv() 将 CSV 文件加载到 pandas
基本语法: pandas.read_csv(filename, delimiter=‘,’)

data= pd.read_csv(“Salary_Data.csv”)
data
在这里插入图片描述

csv 文件 python pandas [python read csv]
Step3:提取字段名称
.columns 用于获取标题/字段名称。

data.columns
csv python pandas 中的 .columns [python 读取 csv]
Step4:提取行
可以使用字段名称访问数据框的所有数据。

data.Salary
在这里插入图片描述

使用 csv 在 Python 中读取 CSV 文件。DictReader的
如何在 Python 中读取 CSV 文件中的字典就像一个哈希表,包含键和值。要创建字典,请使用具有指定键和值的 dict() 方法。如果您在 Python 中使用 CSV 文件,则 csv 模块的 .DictReader 在阅读它们时派上用场。以下是有关如何使用 Python 读取 CSV 文件的简单指南

Step1: 导入csv模块
import csv
Step2:使用 .open() 函数打开 CSV 文件,模式设置为“r”进行读取。
with open(‘Salary_Data.csv’, ‘r’) as csvfile:
步骤3:使用csv创建DictReader对象。DictReader() 方法。
reader = csv.DictReader(csvfile)
Step4:使用 csv。DictReader 对象来读取 CSV 文件。
使用“for”循环和 DictReader 对象循环访问 CSV 文件的行,以查看作为键的字段名称及其各自的值。

for row in reader:
print(row)
在python中编写CSV文件的方法列表
使用 csv.writer 编写 CSV 文件
使用 writelines() 函数编写 CSV 文件
使用 Pandas 编写 CSV 文件
使用 csv 编写 CSV 文件。DictWriter 的
如何写入 Python CSV?
我们可以通过多种方式写入 CSV 文件。

七、使用 csv.writer 编写 CSV 文件

csv.writer() 函数返回一个 writer 对象,该对象将输入数据转换为分隔字符串。
例如,假设我们正在记录 3 名学生的数据(姓名、M1 分数、M2 分数)

header = [‘Name’, ‘M1 Score’, ‘M2 Score’]
data = [[‘Alex’, 62, 80], [‘Brad’, 45, 56], [‘Joey’, 85, 98]]
现在让我们看看如何使用 csv.writer 将这些数据写入 CSV 文件:

Step1:导入csv库。

import csv
Step2:定义文件名并使用 open() 打开文件。
Step3: 使用 csv.writer() 创建一个 csvwriter 对象。
Step4:写标题。
Step5:写入其余数据。

步骤 2-5 的代码

filename = 'Students_Data.csv'
with open(filename, 'w', newline="") as file:csvwriter = csv.writer(file) # 2. create a csvwriter objectcsvwriter.writerow(header) # 4. write the headercsvwriter.writerows(data) # 5. write the rest of the data

以下是我们的 CSV 文件的外观。
在这里插入图片描述

使用 .writelines() 写入 CSV 文件
.writelines() 遍历每个列表,将列表元素转换为字符串,然后将其写入 csv 文件。

header = ['Name', 'M1 Score', 'M2 Score']
data = [['Alex', 62, 80], ['Brad', 45, 56], ['Joey', 85, 98]]
filename = 'Student_scores.csv'
with open(filename, 'w') as file:for header in header:file.write(str(header)+', ')file.write('n')for row in data:for x in row:file.write(str(x)+', ')file.write('n')

在这里插入图片描述

使用 Pandas 编写 CSV
按照以下步骤使用 pandas 写入 CSV 文件:

Step1: 导入 pandas 库
import pandas as pd
Step2:使用 pd 创建 pandas 数据帧。数据帧
语法: pd.DataFrame(数据、列)

data 参数采用记录/观测值,columns 参数采用列/字段名称。

header = [‘Name’, ‘M1 Score’, ‘M2 Score’]
data = [[‘Alex’, 62, 80], [‘Brad’, 45, 56], [‘Joey’, 85, 98]]
data = pd.DataFrame(data, columns=header)
Step3:使用 to_csv() 写入 CSV 文件
语法:DataFrame.to_csv(filename, sep=‘,’, index=False)

默认情况下,分隔符为 ‘,’ 。

index=False 删除索引号。

data.to_csv(‘Stu_data.csv’, index=False)
以下是我们的 CSV 的样子
在这里插入图片描述

使用 pandas 编写 csv [python read csv]

八、使用 csv 编写 CSV 文件。DictWriter 的

您可以使用 csv 模块将数据写入 CSV 文件。DictReader 按照以下步骤操作。

Step1: 导入csv模块
import csv
Step2: 使用 .open() 函数,创建一个模式为“w”的新文件对象,用于写入
使用该函数创建一个新的文件对象,指定文件名,并将写入模式设置为“w”。open()

with open(‘Students_Data.csv’, ‘w’, newline=‘’) as csvfile:
Step3:输入要写入CSV文件的数据作为字典列表
data = [{‘Name’: ‘Alex’, ‘M1 Score’: 62, ‘M2 Score’: 80},
{‘Name’: ‘Brad’, ‘M1 Score’: 45, ‘M2 Score’: 56},
{‘Name’: ‘Joey’, ‘M1 Score’: 85, ‘M2 Score’: 98}]
Step4:创建csv。DictWriter 对象,指定文件对象、字段名参数和分隔符
请注意,默认情况下分隔符为“,’

fieldnames = [‘Name’, ‘M1 Score’, ‘M2 Score’] writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
Step5:使用 writeheader() 方法编写标题行。
writer.writeheader()
Step6:使用 writerows() 方法将数据写入 CSV 文件
writer.writerows(data)
这将创建一个名为“Students_Data.csv”的新文件,其中 Name、M1 Score 和 M2 Score 作为标题/列名称以及数据变量下的数据值。

九、结论

到现在为止,我相信你们都熟悉在 Python 中处理 CSV 文件的各种技术,包括 Python 读取 CSV 文件的基本过程。我们相信这篇文章对所有人都很有用。随时与您的学习伙伴分享,以传播知识并提高每个人的 Python 技能。

知道如何在 Python 中读取和写入 CSV 文件是任何数据科学家或分析师的基本技能。它可以节省时间,提高生产力,并使数据处理更加高效。无论您是刚刚起步还是希望将您的技能提升到一个新的水平,我们的数据科学黑带计划都是增强您在数据科学方面知识的绝佳资源。该计划涵盖了 Python 编程的基础知识到高级机器学习概念。通过实践项目和案例研究,您将获得实践经验并学习如何将您的技能应用于现实世界的问题。

关键要点
创建逗号分隔值 (CSV) 文件是将复杂数据转换为可读文本文件的最简单方法。
CSV 格式的文件显示类似于 Excel 工作表的组织表格数据。
您可以在 Python 中使用 csv.reader、.readlines() 或 csv 读取 CSV 文件。DictReader,并使用 .writer 写入一个 .DictWriter 或 .writelines()。
Pandas 可用于在 CSV 中读取和写入数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/872975.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv5和LPRNet的车牌识别系统

车牌识别系统 YOLOv5和LPRNet的车牌识别系统结合了深度学习技术的先进车牌识别解决方案。该系统整合了YOLOv5目标检测框架和LPRNet文本识别模型 1. YOLOv5目标检测框架 YOLO是一种先进的目标检测算法,以其实时性能和高精度闻名。YOLOv5是在前几代基础上进行优化的…

硅谷裸机云多IP服务器怎么样?

硅谷裸机云多IP服务器是一种在硅谷地区提供的、具有多个IP地址的裸机云服务器。这种服务器结合了裸机服务器的高性能和云服务器的灵活性,同时提供了多个IP地址,为用户的各种需求提供了支持。以下是关于硅谷裸机云多IP服务器的一些详细信息,ra…

关于git clone速度极慢的解决方法

关于git clone速度极慢的解决方法 前言 如果没有一个可靠且稳定的魔法,接下来的就不用看了 尝试过的方法(未成功) 既然有成功,那么在探索过程中也必定会有失败的方法,下面也介绍一下我试过的没啥用的方法,给各位避雷&#xff…

Ubuntu安装virtualbox(win10)

virtualbox下载安装 1、下载virtualbox 下载路径:Linux_Downloads – Oracle VM VirtualBox 根据自己的Ubuntu版本选择对应的安装包下载 2、安装virtualbox 到下载路径(一般为~/Download)打开终端输入命令 sudo dpkg -i xxx.deb 继续执…

Web前端知识视频教程分享

资料下载地址: https://545c.com/f/45573183-1323782723-42d3b2?p7526 (访问密码: 7526)

C++从入门到起飞之——类的定义/实例化 全方位剖析!

个人主页:秋风起,再归来~ C从入门到起飞 个人格言:悟已往之不谏,知来者犹可追 克心守己,律己则安! 目录 1.类的定义 1.1、类定义格式 1.2、访问限定符 1.3、类域 2.实例化 2.…

Android 12系统源码_存储(二)StorageManagerService服务

前言 在 Android 系统中,StorageManagerService是一个用于获取存储设备信息和管理存储设备的服务。它提供了一系列方法,可以获取当前挂载的存储设备信息,以及对存储设备进行挂载和卸载操作。 一、Storage存储模块介绍 1.1、StorageManager…

1个Xpath定位可以在Web页面查找到多个元素Selenium

1个Xpath定位可以在Web页面查找到多个元素Selenium//input[id\"transactionId\"] 打开Web页面, 点击F12可以看到压面 点击Ctrl F 可以点图如下图的输入框,输入xpath,看右侧可以找到3个对应的元素 点击Ctrl F 点击Ctrl F 点…

图神经网络实战(17)——深度图生成模型

图神经网络实战(17)——深度图生成模型 0. 前言1. 变分图自编码器2. 自回归模型3. 生成对抗网络小结系列链接 0. 前言 我们已经学习了经典的图生成算法,虽然它们能够完成图生成任务,但也存在一些问题,促使基于图神经网…

28_EfficientNetV2网络详解

V1:https://blog.csdn.net/qq_51605551/article/details/140487051?spm1001.2014.3001.5502 1.1 简介 EfficientNetV2是Google研究人员Mingxing Tan和Quoc V. Le等人在2021年提出的一种深度学习模型,它是EfficientNet系列的最新迭代,旨在提…

leetcode日记(42)螺旋矩阵

我使用的是递归&#xff0c;每次递归遍历一圈矩阵&#xff0c;将遍历结果塞进结果vector中&#xff0c;每次遍历修改上下左右边界&#xff0c;直至遍历后其中两边界重合或交错。 class Solution { public:vector<int> spiralOrder(vector<vector<int>>&…

好玩的动作单机游戏:鬼泣4 游戏安装包

Devil May Cry 4让玩家沉醉于哥德式的超自然世界之中&#xff1b;体验一个新主角与熟悉的英雄发生冲突的故事。玩家操作新主角Nero&#xff0c;利用游戏独特的新系统──强大的「恶魔之手」能释放令人难以置信的攻击和製作出不间断的连续技。 凭藉PC的高效能图形显示功能&…

收银系统源码-千呼新零售2.0【数据报表】

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

【LeetCode】162. 寻找峰值

1. 题目 2. 分析 这道题的难点有二&#xff1a;第一&#xff0c;知道用二分法求解&#xff1b;第二&#xff0c;二分判断的标准是什么&#xff1f;传统的题目的二分标注都是跟某个固定的值做比较&#xff0c;但是此题不然。此题的比较对象是相邻的元素。 不要硬凭自己的脑子…

C语言·函数(超详细系列·全面总结)

前言&#xff1a;Hello大家好&#x1f618;&#xff0c;我是心跳sy&#xff0c;为了更好地形成一个学习c语言的体系&#xff0c;最近将会更新关于c语言语法基础的知识&#xff0c;今天更新一下函数的知识点&#xff0c;我们一起来看看吧&#xff01; 目录 一、函数是什么 &a…

vue、js截取视频任意一帧图片

html有本地上传替换部分&#xff0c;可以不看 原理&#xff1a;通过video标签对视频进行加载&#xff0c;随后使用canvas对截取的视频帧生成需要的图片 <template> <el-row :gutter"18" class"preview-video"><h4>视频预览<span&…

execv函数简单使用

在Unix-like系统中&#xff0c;execv 函数用于执行一个新的程序&#xff0c;同时可以传递参数给它。这个函数是 exec 系列函数之一&#xff0c;用于替换当前进程映像。 execv 的原型如下&#xff1a; int execv(const char *path, char *const argv[]); path&#xff1a;新程…

【边缘计算网关教程】9.对接ThingsBoard(MQTT协议)

前景回顾-【边缘计算网关教程】8.ModbusTCP采集存储Influxdb-CSDN博客 目录 需求分析 平台配置&#xff1a; 需求实现 第一步&#xff1a;采集Modbus TCP数据 第二步&#xff1a;拼接Json 第三步&#xff1a;MQTT上报 平台配置 第一步&#xff1a;添加设备 ​编辑第二…

国内新能源汽车芯片自给,承认差距,任重道远

【科技明说 &#xff5c; 科技热点关注】 据近日工信部电子五所元器件与材料研究院高级副院长罗道军表示&#xff0c;中国拥有最大的新能源车产能&#xff0c;芯片用量也是越来越多。但是芯片的自给率目前不到10%&#xff0c;是结构性的短缺。 中国拥有最大新能源车产能&#…

自学网络安全:从菜鸟到守护者的蜕变之旅

在这个数字化时代&#xff0c;网络安全不再是遥不可及的专业术语&#xff0c;而是与我们每个人的生活息息相关。随着网络攻击事件的频发&#xff0c;掌握一定的网络安全知识&#xff0c;不仅是对个人隐私的保护&#xff0c;更是对社会安全的贡献。今天&#xff0c;就让我们一起…