如何在Python中解析CSV文件
CSV文件用于将表格数据存储到文件中。
我们可以轻松地将数据从数据库表或者Excel文件导出到CSV文件。
程序和程序也易于阅读。
在本教程中,我们将学习如何在Python中解析CSV文件。
什么是解析?
解析文件意味着从文件中读取数据。
该文件可能包含文本数据(所谓的文本文件),也可能是电子表格。
什么是CSV文件?
CSV代表逗号分隔文件,即,数据之间使用逗号分隔。
CSV文件是由处理大量数据的程序创建的。
CSV文件中的数据可以以电子表格和数据库的形式轻松导出,也可以导入以供其他程序使用。
让我们看看如何解析CSV文件。
在Python中解析CSV文件非常容易。
Python有一个内置的CSV库,该库提供了从CSV文件读取数据和将数据写入CSV文件的功能。
库中CSV文件有多种格式可用,这使数据处理变得用户友好。
用Python解析CSV文件
使用内置的Python CSV模块读取CSV文件。
import csv with open('university_records.csv', 'r') as csv_file: reader = csv.reader(csv_file) for row in reader: print(row)
输出:Python解析CSV文件
用Python编写CSV文件
要写入文件,我们必须以写入模式或者附加模式打开它。
其中我们会将数据附加到现有的CSV文件中。
import csv row = ['David', 'MCE', '3', '7.8'] row1 = ['Lisa', 'PIE', '3', '9.1'] row2 = ['Raymond', 'ECE', '2', '8.5'] with open('university_records.csv', 'a') as csv_file: writer = csv.writer(csv_file) writer.writerow(row) writer.writerow(row1) writer.writerow(row2)
Python附加到CSV文件
使用Pandas库解析CSV文件
还有另一种使用CSV文件的方法,它是最受欢迎和更专业的,并且使用了Pandas 库。
Pandas是一个Python数据分析库。
它提供了不同的结构,工具和操作来处理和处理给定的数据,这些数据主要是二维表或者一维表。
Pandas 库 的用途和特点
数据集透视和重塑。
使用DataFrame对象建立索引的数据处理。
数据过滤。
对数据集的合并和联接操作。
大规模数据集的切片,索引和子集。
缺少数据处理和数据对齐。
行/列的插入和删除。
一维不同的文件格式。
各种文件格式的数据读写工具。
要使用CSV文件,您需要安装Pandas 。
安装Pandas 非常简单,请按照以下说明使用PIP进行安装。
$pip install pandas
Python安装Pandas
Python安装Pandas Cmd
安装完成后,就可以开始了。
使用Pandas Module读取CSV文件
您需要先了解数据文件在文件系统中的路径以及当前的工作目录,然后才能使用Pandas 导入CSV文件数据。
我建议将代码和数据文件保存在相同的目录或者文件夹中,这样您就无需指定路径来节省时间和空间。
import pandas result = pandas.read_csv('ign.csv') print(result)
输出
使用pandas模块读取CSV文件
使用Pandas Module编写CSV文件
使用Pandas 编写CSV文件就像阅读一样简单。
唯一使用的新术语是" DataFrame"。
Pandas DataFrame是二维的异构表格数据结构(数据以表格的形式排列在行和列中。
Pandas DataFrame由三个主要组件组成-数据,列和行-带有标记的x轴和y轴(行和列)。
from pandas import DataFrame C = {'Programming language': ['Python', 'Java', 'C++'], 'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'], 'Appeared': ['1991', '1995', '1985'], 'Extension': ['.py', '.java', '.cpp'], } df = DataFrame(C, columns=['Programming language', 'Designed by', 'Appeared', 'Extension']) export_csv = df.to_csv(r'program_lang.csv', index=None, header=True)