Python开发——CSV 文件的使用与应用

        CSV(Comma Separated Values)文件是一种常见的数据存储格式,广泛应用于数据导出和导入。Python 提供了内置的 `csv` 模块,用于读取和写入 CSV 文件。下面是关于如何在 Python 中更全面地使用 CSV 文件的示例和应用。

1. 基本读取

        使用 `csv.reader` 可以将 CSV 文件读取为一个可迭代对象,并逐行输出。

import csv

# 使用 open 函数打开 csv 文件
with open('taxi.csv', encoding='utf-8') as file:
    csv_reader = csv.reader(file)
    # 逐行循环输出
    for row in csv_reader:
        print(row)

2. 写入 CSV 文件

        使用 `csv.writer` 可以将数据写入到 CSV 文件中。

import csv

# 准备一些数据
data = [
    ['Name', 'Age', 'City'],
    ['Alice', 30, 'New York'],
    ['Bob', 25, 'Los Angeles'],
    ['Charlie', 35, 'Chicago']
]

# 打开 csv 文件,准备写入数据
with open('people.csv', mode='w', encoding='utf-8', newline='') as file:
    csv_writer = csv.writer(file)
    # 写入数据
    for row in data:
        csv_writer.writerow(row)

3. 使用 DictReader 和 DictWriter

        `csv.DictReader` 和 `csv.DictWriter` 可以更方便地处理 CSV 文件,将每行数据读取为字典或者将字典写入到 CSV 文件中。

import csv

# 使用 DictReader 读取 csv 文件
with open('people.csv', encoding='utf-8') as file:
    csv_dict_reader = csv.DictReader(file)
    # 逐行循环输出
    for row in csv_dict_reader:
        print(row)

# 准备一些数据,数据为字典格式
data = [
    {'Name': 'David', 'Age': 40, 'City': 'Houston'},
    {'Name': 'Eva', 'Age': 28, 'City': 'Seattle'}
]

# 使用 DictWriter 写入 csv 文件
with open('people_new.csv', mode='w', encoding='utf-8', newline='') as file:
    fieldnames = ['Name', 'Age', 'City']
    csv_dict_writer = csv.DictWriter(file, fieldnames=fieldnames)
    # 写入表头
    csv_dict_writer.writeheader()
    # 写入数据
    for row in data:
        csv_dict_writer.writerow(row)

4. 读取和写入包含特殊字符的 CSV 文件

        使用 `csv` 模块可以指定不同的分隔符和引用符,以处理包含特殊字符的 CSV 文件。

import csv

# 准备一些数据,包含特殊字符
data = [
    ['Name', 'Age', 'Quote'],
    ['Alice', 30, 'Hello, "World"!'],
    ['Bob', 25, 'Goodbye, World!']
]

# 使用不同的分隔符和引用符写入 csv 文件
with open('quotes.csv', mode='w', encoding='utf-8', newline='') as file:
    csv_writer = csv.writer(file, delimiter=';', quotechar='"', quoting=csv.QUOTE_MINIMAL)
    for row in data:
        csv_writer.writerow(row)

# 读取包含特殊字符的 csv 文件
with open('quotes.csv', encoding='utf-8') as file:
    csv_reader = csv.reader(file, delimiter=';', quotechar='"')
    for row in csv_reader:
        print(row)

5. CSV 文件的高级应用

5.1 数据过滤和处理

        可以通过读取 CSV 文件并应用过滤条件来处理数据。例如,过滤出年龄大于30的人。

import csv

with open('people.csv', encoding='utf-8') as file:
    csv_reader = csv.reader(file)
    header = next(csv_reader)  # 读取表头
    filtered_data = [header]
    
    for row in csv_reader:
        age = int(row[1])
        if age > 30:
            filtered_data.append(row)

# 将过滤后的数据写入新的 csv 文件
with open('filtered_people.csv', mode='w', encoding='utf-8', newline='') as file:
    csv_writer = csv.writer(file)
    for row in filtered_data:
        csv_writer.writerow(row)

5.2 数据统计

        可以通过读取 CSV 文件并进行数据统计。例如,统计不同城市的人数。

import csv
from collections import Counter

with open('people.csv', encoding='utf-8') as file:
    csv_reader = csv.reader(file)
    header = next(csv_reader)  # 读取表头
    cities = [row[2] for row in csv_reader]

city_count = Counter(cities)
print(city_count)

5.3 数据可视化

        可以使用数据可视化库(如 matplotlib)将 CSV 数据进行可视化展示。

import csv
import matplotlib.pyplot as plt

ages = []

with open('people.csv', encoding='utf-8') as file:
    csv_reader = csv.reader(file)
    header = next(csv_reader)  # 读取表头
    for row in csv_reader:
        ages.append(int(row[1]))

plt.hist(ages, bins=5, edgecolor='black')
plt.xlabel('Age')
plt.ylabel('Frequency')
plt.title('Age Distribution')
plt.show()

        这些示例展示了如何使用 Python 的 `csv` 模块来处理 CSV 文件,包括基本的读取和写入操作,以及更高级的应用如数据过滤、统计和可视化。掌握这些技巧可以有效地处理和分析 CSV 格式的数据。

猜你喜欢

转载自blog.csdn.net/weixin_65190179/article/details/140253166