Python 读取 CSV 文件

Python 读取 CSV 文件

CSV(Comma-Separated Values,逗号分隔值)格式是一种常见的数据交换格式,因为它易于读取和编写。Python 作为一种非常流行的编程语言,提供了很多方法来读取 CSV 文件。

使用 CSV 模块

Python 内置的 csv 模块提供了一种使用 Python 读写 CSV 文件的简单方式。我们可以使用 csv 模块来读取和写入 CSV 文件,而不必自己去解析 CSV 格式。

下面是一个从 CSV 文件读取数据的示例:

import csv

# 打开 CSV 文件
with open('data.csv', newline='') as csvfile:
    # 创建 CSV 读取器
    reader = csv.reader(csvfile, delimiter=',')
    # 读取 CSV 文件中的数据
    for row in reader:
        print(', '.join(row))

在这个例子中,我们使用 csv.reader 方法创建一个 CSV 读取器。csv.reader 方法接受两个参数,第一个参数是一个可迭代的对象,我们需要把打开的 CSV 文件作为这个参数;第二个参数是该 CSV 文件行中元素的分隔符。

csv.reader 方法会返回一个可迭代的对象,我们可以使用 for 循环来读取 CSV 文件中的数据。读取出来的每一行数据都被当成一个列表(list)返回,每个列表元素对应 CSV 文件中的一个单元格。

下面是一个写入 CSV 文件的示例:

import csv

# 写入的数据
data = [
    ['Name', 'Age', 'Gender'],
    ['Bob', '25', 'Male'],
    ['Alice', '30', 'Female'],
]

# 打开 CSV 文件
with open('data.csv', 'w', newline='') as csvfile:
    # 创建 CSV 写入器
    writer = csv.writer(csvfile, delimiter=',')
    # 写入数据到 CSV 文件
    for row in data:
        writer.writerow(row)

在这个例子中,我们使用 csv.writer 方法创建一个 CSV 写入器。csv.writer 方法接受两个参数,第一个参数是一个可写文件对象,我们需要把打开的文件对象作为这个参数;第二个参数是该 CSV 文件行中元素的分隔符。

csv.writer 方法同时也是返回一个可迭代的对象,它可以帮我们将数据写入到 CSV 文件中。

使用 pandas 库

pandas 是一个数据处理库,它提供了很多用于处理 CSV 文件的功能。它不仅可以方便地读取 CSV 文件,而且可以对读入的数据做出相应的操作和分析。

下面是一个从 CSV 文件读取数据并把数据转换成 DataFrame 的示例:

import pandas as pd

# 读取 CSV 文件数据到 DataFrame
df = pd.read_csv('data.csv')

# 打印 DataFrame
print(df)

在这个例子中,我们使用 pandas.read_csv 方法从 CSV 文件读入数据,然后把数据转换为一个叫做 DataFrame 的表格数据结构。

在 pandas 中,DataFrame 是一个二维表格数据结构,它由行和列构成,我们可以通过操作行和列来对数据进行操作。

下面是一个把 DataFrame 数据写入到 CSV 文件的示例:

import pandas as pd

# DataFrame 数据
data = {
    'Name': ['Bob', 'Alice'],
    'Age': [25, 30],
    'Gender': ['Male', 'Female']
}

# 创建 DataFrame
df = pd.DataFrame(data)

# 把 DataFrame 数据写入到 CSV 文件
df.to_csv('data.csv', index=False)

在这个例子中,我们首先使用一个字典(dictionary)对象来定义一个包含姓名(Name)、年龄(Age)和性别(Gender)的表格数据,然后使用 pandas.DataFrame 方法把这个数据转换为一个 DataFrame 对象。

我们再把 DataFrame 对象通过 to_csv 方法写入到CSV 文件中,其中参数 index=False 表示不在 CSV 文件中输出行索引。

使用 NumPy 库

NumPy 是一个科学计算库,它提供了很多用于处理数组和矩阵的功能。NumPy 也提供了一些用于读取和写入 CSV 文件的函数。

下面是一个从 CSV 文件读取数据并把数据转换成 NumPy 数组的示例:

import numpy as np

# 读取 CSV 文件数据到 NumPy 数组
data = np.genfromtxt('data.csv', delimiter=',')

# 打印 NumPy 数组
print(data)

在这个例子中,我们使用 numpy.genfromtxt 函数从 CSV 文件读入数据,然后把数据转换为一个 NumPy 数组。numpy.genfromtxt 函数接受两个参数,第一个参数是 CSV 文件名,第二个参数是 CSV 文件中行的分隔符。

下面是一个把 NumPy 数组数据写入到 CSV 文件的示例:

import numpy as np

# NumPy 数组数据
data = np.array([
    ['Name', 'Age', 'Gender'],
    ['Bob', '25', 'Male'],
    ['Alice', '30', 'Female'],
])

# 把 NumPy 数组数据写入到 CSV 文件
np.savetxt('data.csv', data, delimiter=',', fmt='%s')

在这个例子中,我们使用 numpy.savetxt 函数将 NumPy 数组数据写入到 CSV 文件。该函数接受四个参数,第一个参数是文件名,第二个参数是数据,第三个参数是 CSV 文件中行的分隔符,第四个参数是数据的格式,其中 %s 表示字符串格式。

结论

Python 提供了多种简单易用的方式来读取 CSV 文件,包括使用 csv 模块、pandas 库和 NumPy 库。我们可以根据不同的需求选择不同的方法来读写 CSV 文件,既能够提高效率,又可以简化代码长度,方便我们进行数据处理和分析。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程