Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
# 7. Python 文件与数据处理

## CSV 与 Excel 文件处理

在数据分析和处理中,CSV 和 Excel 文件是最常见的文件格式之一。Python 提供了多种库来高效地处理这些文件格式。本节将介绍如何使用 Python 读取、写入和操作 CSV 和 Excel 文件。

### 1. CSV 文件处理

CSV(Comma-Separated Values)文件是一种以纯文本形式存储表格数据的文件格式。Python 内置的 `csv` 模块可以方便地处理 CSV 文件。

#### 1.1 读取 CSV 文件

使用 `csv.reader` 可以逐行读取 CSV 文件中的数据:

```python
import csv

with open('data.csv', mode='r', encoding='utf-8') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

1.2 写入 CSV 文件

使用 csv.writer 可以将数据写入 CSV 文件:

import csv

data = [
    ['Name', 'Age', 'City'],
    ['Alice', '30', 'New York'],
    ['Bob', '25', 'Los Angeles']
]

with open('output.csv', mode='w', encoding='utf-8', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

1.3 使用 DictReader 和 DictWriter

csv.DictReader 和 csv.DictWriter 可以将 CSV 文件中的每一行作为字典处理,方便按列名访问数据:

import csv

# 读取 CSV 文件
with open('data.csv', mode='r', encoding='utf-8') as file:
    reader = csv.DictReader(file)
    for row in reader:
        print(row['Name'], row['Age'])

# 写入 CSV 文件
data = [
    {'Name': 'Alice', 'Age': '30', 'City': 'New York'},
    {'Name': 'Bob', 'Age': '25', 'City': 'Los Angeles'}
]

with open('output.csv', mode='w', encoding='utf-8', newline='') as file:
    fieldnames = ['Name', 'Age', 'City']
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerows(data)

2. Excel 文件处理

Excel 文件通常以 .xlsx 或 .xls 格式存储。Python 的 openpyxl 和 pandas 库是处理 Excel 文件的常用工具。

2.1 使用 openpyxl 处理 Excel 文件

openpyxl 是一个专门用于读写 Excel 文件的库。

2.1.1 读取 Excel 文件
from openpyxl import load_workbook

# 加载 Excel 文件
workbook = load_workbook('data.xlsx')
sheet = workbook.active

# 读取单元格数据
for row in sheet.iter_rows(values_only=True):
    print(row)
2.1.2 写入 Excel 文件
from openpyxl import Workbook

# 创建新的 Excel 文件
workbook = Workbook()
sheet = workbook.active

# 写入数据
sheet['A1'] = 'Name'
sheet['B1'] = 'Age'
sheet['A2'] = 'Alice'
sheet['B2'] = '30'

# 保存文件
workbook.save('output.xlsx')

2.2 使用 pandas 处理 Excel 文件

pandas 是一个强大的数据分析库,支持直接读取和写入 Excel 文件。

2.2.1 读取 Excel 文件
import pandas as pd

# 读取 Excel 文件
df = pd.read_excel('data.xlsx')
print(df)
2.2.2 写入 Excel 文件
import pandas as pd

# 创建 DataFrame
data = {
    'Name': ['Alice', 'Bob'],
    'Age': [30, 25],
    'City': ['New York', 'Los Angeles']
}
df = pd.DataFrame(data)

# 写入 Excel 文件
df.to_excel('output.xlsx', index=False)

3. 处理大型 CSV 和 Excel 文件

对于大型文件,直接读取可能会导致内存不足。可以使用以下方法优化处理:

  • 分块读取:pandas 支持分块读取 CSV 和 Excel 文件。
  • 流式处理:逐行读取文件并处理,避免一次性加载整个文件。

3.1 分块读取 CSV 文件

import pandas as pd

chunk_size = 10000
for chunk in pd.read_csv('large_data.csv', chunksize=chunk_size):
    process(chunk)  # 处理每个分块

3.2 流式读取 Excel 文件

from openpyxl import load_workbook

workbook = load_workbook('large_data.xlsx', read_only=True)
sheet = workbook.active

for row in sheet.iter_rows(values_only=True):
    process(row)  # 逐行处理

4. 总结

  • CSV 文件适合存储简单的表格数据,Python 的 csv 模块提供了高效的读写功能。
  • Excel 文件适合存储复杂的表格数据,openpyxl 和 pandas 是处理 Excel 文件的常用工具。
  • 对于大型文件,分块读取和流式处理是优化内存使用的有效方法。

通过掌握这些工具和技巧,您可以轻松处理各种 CSV 和 Excel 文件,为数据分析和处理打下坚实的基础。

Last Updated:: 3/17/25, 7:20 PM