如何读取 CSV 文件 Python (模块,Pandas 示例)

⚡ 智能摘要

CSV 文件以纯文本格式存储表格数据,列之间用逗号分隔,行之间用换行符分隔。在这里,您将学习如何读写 CSV 文件。 Python 使用内置的 csv 模块和 pandas 库。

  • 📄 它是什么: CSV 文件将表格数据存储为逗号分隔的纯文本。
  • ???? csv.reader: csv.reader() 从 CSV 文件中读取行作为列表。
  • 📚 DictReader: csv.DictReader() 将每一行读取到一个有序字典中。
  • ✍️ csv.writer: csv.writer() 和 writerow() 将行写入 CSV 文件。
  • 🐼 熊猫: pandas.read_csv() 和 to_csv() 可以在一行中读取和写入 CSV 文件。
  • 🤖 人工智能帮助: Copilot 等 AI 工具可以即时生成 CSV 读取和写入代码。

读取 CSV 文件 Python

什么是 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.reader() 函数遍历每行数据,将其作为列表读取。或者,也可以使用 csv.DictReader() 函数将每一行读取为一个字典。

以写入模式打开文件,创建一个 csv.writer() 对象,然后对每一行调用 writerow() 函数,或者对多行调用 writerows() 函数。writer 对象会自动处理引号和分隔符。

`csv.DictReader()` 将 CSV 文件读取到有序字典中,并以标题行作为键。这样,您就可以通过列名而不是索引来访问每个值。

调用 pandas.read_csv('file.csv') 函数,即可将 CSV 文件加载到 DataFrame 中,只需一行代码即可完成。Pandas 会自动将第一行用作列标题。

GitHub Copilot 等 AI 助手可以自动完成 csv 和 pandas 调用,生成读写循环,并根据简短描述建议正确的分隔符或引用选项。

是的。人工智能工具可以自动解析、清理和转换 CSV 数据,生成 pandas 管道,并添加针对格式错误的行或缺失列的错误处理。

使用内置的 csv 模块可以进行简单轻量级的读写操作。当需要高效地过滤、转换或分析大型 CSV 数据集时,请选择 pandas。

总结一下这篇文章: