如何读取 CSV 文件 Python (模块,Pandas 示例)
什么是 CSV 文件?
A CSV文件 是一种简单的纯文本文件,使用特定结构来排列表格数据。CSV 文件的标准格式由行和列数据定义,其中换行符终止每行并开始下一行,并且行内每列由逗号分隔。
CSV 是一种常见的数据交换格式,因为它紧凑、简单且通用。许多在线服务允许用户将网站上的表格数据导出到 CSV 文件中。CSV 文件将在 Excel 中打开,几乎所有数据库都有允许从 CSV 文件导入的工具。
CSV 示例文件
表格形式的数据也称为 CSV(逗号分隔值)——字面意思是“逗号分隔值”。这是一种用于呈现表格数据的文本格式。文件的每一行都是表格的一行。各个列的值由分隔符分隔——逗号 (,)、分号 (;) 或其他符号。CSV 可以轻松读取和处理 Python.
考虑下表
表格数据
编程语言 | 设计制作 | 出现 | 延期 |
---|---|---|---|
Python | Guido van Rossum | 1991 | 的.py |
Java | 詹姆斯·高斯林 | 1995 | .Java |
C++ | Bjarne Stroustrup | 1983 | 的.cpp |
您可以按照如下方式在 csv 中表示该表。
CSV 数据
编程语言,设计者,出现,扩展
Python,Guido van Rossum,1991 年,.py
Java,詹姆斯·高斯林,1995 年,.java
C++, Bjarne Stroustrup,1983,.cpp
如您所见,每行都是一个新行,每列都用逗号分隔。这是 CSV 文件的示例。
Python CSV 模块
Python 提供了一个 CSV 模块来处理 CSV 文件。要读取/写入数据,您需要循环遍历 CSV 的行。您需要使用 split 方法从指定的列中获取数据。
CSV 模块函数
在 CSV 模块文档中您可以找到以下函数:
- csv.field_size_limit – 返回最大字段大小
- csv.get_dialect – 获取与名称相关的方言
- csv.list_dialects – 显示所有注册的方言
- csv.reader – 从 csv 文件读取数据
- csv.register_dialect – 将方言与名称关联
- csv.writer – 将数据写入 csv 文件
- csv.unregister_dialect – 删除与方言注册表名称关联的方言
- csv.QUOTE_ALL – 引用所有内容,无论类型如何。
- csv.QUOTE_MINIMAL – 带有特殊字符的报价字段
- csv.QUOTE_NONNUMERIC – 引用所有非数字值的字段
- csv.QUOTE_NONE – 不要在输出中引用任何内容
在本教程中,我们将仅关注允许您编辑、修改和操作 CSV 文件中的数据的读取器和写入器功能。
如何读取 CSV 文件 Python
下面是读取 CSV 文件的步骤 Python.
步骤1) 要从 CSV 文件读取数据,必须使用读取器函数生成读取器对象。
读取器函数用于读取文件的每一行并列出所有列。然后,您必须选择要为其存储变量数据的列。
这听起来比实际要复杂得多。让我们来看看这个 Python 代码来读取 CSV 文件,我们会发现处理 csv 文件并不那么难。
#import necessary modules import csv with open('X:\data.csv','rt')as f: data = csv.reader(f) for row in data: print(row)
步骤2) 当你执行上述程序时,输出将是:
['Programming language; Designed by; Appeared; Extension'] ['Python; Guido van Rossum; 1991; .py'] ['Java; James Gosling; 1995; .java'] ['C++; Bjarne Stroustrup;1983;.cpp']
如何将 CSV 文件读入字典 Python
您还可以使用 DictReader 读取 CSV 文件。结果将被解释为一个字典,其中标题行是键,其他行是值。
考虑以下代码
#import necessary modules import csv reader = csv.DictReader(open("file2.csv")) for raw in reader: print(raw)
该代码的结果是:
OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')]) OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')]) OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])
这种从 CSV 文件读取数据的方法比以前的方法容易得多。但是,这并不是读取数据的最佳方法。
如何在 CSV 文件中写入 Python
以下是如何写入 CSV 文件 Python:
当您有一组想要存储在 CSV 文件中的数据时,您必须使用 writer() 函数。要遍历行(行)上的数据,您必须使用 writerow() 函数。
考虑以下示例。我们将数据写入文件“writeData.csv”,其中分隔符是撇号。
#import necessary modules import csv with open('X:\writeData.csv', mode='w') as file: writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) #way to write to csv file writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension']) writer.writerow(['Python', 'Guido van Rossum', '1991', '.py']) writer.writerow(['Java', 'James Gosling', '1995', '.java']) writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])
csv 文件中的结果是:
Programming language, Designed by, Appeared, Extension Python, Guido van Rossum, 1991, .py Java, James Gosling, 1995, .java C++, Bjarne Stroustrup,1983,.cpp
使用 Pandas 读取 CSV 文件
Pandas 是一个开源库,它允许你导入 CSV Python 并执行数据操作。Pandas 提供了一种创建、操作和删除数据的简单方法。
您必须使用命令pip install pandas安装 pandas 库。在 Windows,您将在 Linux 终端中的命令提示符中执行此命令。
将 CSV 读入 pandas DataFrame 非常快速且简单:
#import necessary modules import pandas result = pandas.read_csv('X:\data.csv') print(result)
结果 读取 CSV Pandas 例:
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
非常有用的库。只需三行代码,您就可以获得与之前相同的结果。Pandas 知道 CSV 的第一行包含列名,并且会自动使用它们。
使用 Pandas 写入 CSV 文件
使用 Pandas 写入 CSV 文件和读取一样简单。您可以在这里确认。首先,您必须根据以下内容创建 DataFrame Python 写入 CSV 代码。
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'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored print (df)
输出如下
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
并在指定位置创建 CSV 文件。
结语
现在,您知道如何使用方法“csv”以及如何读取和写入 CSV 格式的数据。CSV 文件在软件应用程序中被广泛使用,因为它们易于读取和管理,而且体积小,处理和传输速度相对较快。
csv 模块提供了各种函数和类,方便您轻松读写。您可以查看官方 Python 文档并找到一些更有趣的提示和模块。CSV 是保存、查看和发送数据的最佳方式。实际上,它并不像一开始看起来那么难学。但只要稍加练习,你就会掌握它。
Pandas 是读取 CSV 文件的绝佳替代品。
此外,还有其他方法可以使用 ANTLR、PLY 和 PlyPlus 等库来解析文本文件。它们都可以处理繁重的解析工作,如果简单的字符串操作不起作用,您可以使用正则表达式。