Python读取CSV文件

2025年9月11日 | 阅读 5 分钟

CSV (逗号分隔值) 文件是一种纯文本文件,用于以特定格式组织表格信息。CSV 文件格式是一种分隔文本文件,使用逗号来分隔值。

CSV 文档中的行是数据日志,其中每条日志由一个或多个字段组成,字段之间用逗号分隔。CSV 是导入和导出电子表格和数据库最流行的文件格式之一。

Python 中,我们可以使用 **内置** 的 csv 模块pandas 库 的函数来读取 CSV 文件。在接下来的章节中,我们将探索在 Python 中读取 CSV 文件的不同方法。

为了理解这些方法,我们将使用以下 CSV 文件。

文件: companies.csv

在上面的 CSV 文件中,我们有一些由逗号 ',' 分隔的值。我们将在接下来的章节中使用此文件进行示例。

在 Python 中读取 CSV 文件

在 Python 中读取 CSV 文件有不同的方法,可以使用 CSV 模块或 pandas 库。

  • csv 模块: csv 模块是 Python 的内置模块之一。它提供了各种类和函数,帮助我们以 CSV 文件格式读取和写入表格信息。

要在 Python 中使用 csv 模块,我们需要导入它。以下语法将指导我们如何为此目的使用 csv 模块。

语法

  • pandas 库: pandas 库是一个开源的 Python 库,用于数据分析和操作。它是 Python 中最重要的工具之一,允许数据科学家、分析师和开发人员使用结构化数据。

与 csv 模块类似,为了使用 pandas,我们首先需要导入它。以下是导入 pandas 库到 Python 程序中的语法。

语法

在 Python 中读取 CSV 文件的方法

现在我们将研究在 Python 中读取 CSV 文件可能存在的不同方法。

1) 使用 csv.reader()

csv.reader() 是 Python 内置 csv 模块提供的函数。它用于从 CSV 文件读取数据。它返回一个 reader 对象,该对象可用于迭代给定 CSV 文件中的行。

让我们看一个 csv.reader() 函数的例子。

示例

立即执行

输出

['Organization', 'Industry', 'Employees']
['Google', 'IT', '1500']
['Microsoft', 'IT', '1300']
['Tata', 'Manufacturing', '1000']
['Tpoint Tech', 'Education', '200']
['Apple', 'IT', '1200']

说明

在上面的示例中,我们导入了 csv 模块,并使用 'with open()' 语句打开了 companies.csv 文件。然后,我们使用了 csv.reader() 函数来读取 CSV 文件中的内容。最后,我们逐行打印了文件内容。

2) 使用 csv.DictReader()

借助 csv.DictReader() 类,我们可以将 CSV 文件转换为字典,其中字段名用作键。文件系统为我们提供了简单的值字段访问,使数据更具可读性。当执行迭代过程时,此类会以字典形式返回行数据。

这是 csv.DictReader() 类的一个示例

示例

立即执行

输出

{'Organization': 'Google', 'Industry': 'IT', 'Employees': '1500'}
{'Organization': 'Microsoft', 'Industry': 'IT', 'Employees': '1300'}
{'Organization': 'Tata', 'Industry': 'Manufacturing', 'Employees': '1000'}
{'Organization': 'Tpoint Tech', 'Industry': 'Education', 'Employees': '200'}
{'Organization': 'Apple', 'Industry': 'IT', 'Employees': '1200'}

说明

在上面的示例中,我们导入了 csv 模块。然后,我们使用 'with open()' 语句打开了 CSV 文件。之后,我们使用了 csv 模块中的 DictReader() 类,通过其列标题将每一行转换为一个字典。最后,我们以字典格式打印了数据。

3) 使用 pandas.read_csv()

Pandas 使用 NumPy,是一个开源库,人们用它来轻松处理和分析数据。它有助于简化所有这些数据处理步骤。read_csv() 函数允许我们将 CSV 文件加载为 DataFrame,有助于节省时间和以结构化的方式管理信息。

让我们看一个例子。

示例

立即执行

输出

  Organization       Industry  Employees
0       Google             IT       1500
1    Microsoft             IT       1300
2         Tata  Manufacturing       1000
3  Tpoint Tech      Education        200
4        Apple             IT       1200

说明

在这里,我们导入了 pandas 库。然后,我们使用 read_csv() 函数将给定的 CSV 文件转换为 DataFrame 并将其存储在一个变量中。最后,我们使用 print 语句打印了 DataFrame。

结果,CSV 文件被转换为行和列。这种结构使我们更容易理解 CSV 文件中的信息。

结论

Python 是一种通用且功能强大的编程语言,提供了各种读取 CSV 文件的方法。在本教程中,我们学习了一些这些方法。我们了解了 csv 模块和 pandas 库如何帮助我们读取 CSV 文件。我们学习了 csv 模块的不同函数和类,允许我们将 CSV 文件读取到不同的格式中。同样,pandas 库的 read_csv() 函数允许我们将 CSV 文件查看为字典格式。

Python 读取 CSV 文件常见问题解答

1. Python csv 模块用于什么?

csv 模块用于读取和写入 CSV (逗号分隔值) 文件。它简化了使用纯文本格式的结构化数据。

2. 如何使用 csv 模块读取 CSV 文件?

您可以使用 reader() 将行读取为列表,或使用 csv.DictReader() 将行读取为字典,以列标题作为键。

3. 如何使用 Python 将数据写入 CSV 文件?

使用 writer() 将数据作为行写入 CSV 文件。您可以使用 writerow() 或 writerows() 方法写入数据列表。

4. reader() 和 csv.DictReader() 有什么区别?

csv.reader() 将每一行读取为列表,而 csv.DictReader() 将每一行读取为字典,键来自第一行 (标题)。

5. 我们需要 Pandas 等外部库来处理 CSV 文件吗?

不,对于基本操作,Python 的内置 csv 模块已足够。但是,对于高级数据分析,Pandas 等库提供了更多功能。