如何读取 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 文件的示例。

下载 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 文件读取数据的方法比以前的方法容易得多。但是,这并不是读取数据的最佳方法。

如何在 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

将 CSV 文件写入 Python

使用 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 文件。

使用 Pandas 写入 CSV 文件

结语

现在,您知道如何使用方法“csv”以及如何读取和写入 CSV 格式的数据。CSV 文件在软件应用程序中被广泛使用,因为它们易于读取和管理,而且体积小,处理和传输速度相对较快。

csv 模块提供了各种函数和类,方便您轻松读写。您可以查看官方 Python 文档并找到一些更有趣的提示和模块。CSV 是保存、查看和发送数据的最佳方式。实际上,它并不像一开始看起来那么难学。但只要稍加练习,你就会掌握它。

Pandas 是读取 CSV 文件的绝佳替代品。

此外,还有其他方法可以使用 ANTLR、PLY 和 PlyPlus 等库来解析文本文件。它们都可以处理繁重的解析工作,如果简单的字符串操作不起作用,您可以使用正则表达式。

每日Guru99新闻简报

通过立即获取最新、最重要的人工智能新闻报道来开始您的一天。