使用Python高效处理CSV和Excel文件的多种方法

在数据分析、自动化和日常开发中,CSV和Excel文件是非常常见的数据存储格式。Python提供了强大的工具来读取、编辑和保存这两种文件,满足从基本读取到复杂分析的需求。本文将深入介绍CSV和Excel文件的多种处理方法,帮助你更好地管理和分析数据。


1. CSV文件的处理方法

1.1 使用csv库读取和写入CSV文件

Python内置的csv库是一个轻量级的工具,适合处理基本的CSV文件操作。

  • 读取CSV文件:csv.reader
    csv.reader将CSV文件中的每一行读取为一个列表,每个元素对应表中的一个字段。

    python 复制代码
    import csv
    
    with open('example.csv', 'r', encoding='utf-8') as file:
        reader = csv.reader(file)
        for row in reader:
            print(row)  # 每行数据以列表形式输出
  • 以字典格式读取:csv.DictReader
    DictReader将每行数据映射为字典,适合按列名访问数据。

    python 复制代码
    with open('example.csv', 'r', encoding='utf-8') as file:
        reader = csv.DictReader(file)
        for row in reader:
            print(row)  # 每行数据以字典形式输出
  • 写入CSV文件:csv.writer
    csv.writer可以将列表写入CSV文件。

    python 复制代码
    with open('output.csv', 'w', newline='', encoding='utf-8') as file:
        writer = csv.writer(file)
        writer.writerow(['name', 'age', 'city'])  # 写入表头
        writer.writerow(['Alice', 30, 'New York'])  # 写入数据
  • 以字典格式写入:csv.DictWriter
    DictWriter允许以字典格式写入数据,常用于有明确表头的情况。

    python 复制代码
    with open('output.csv', 'w', newline='', encoding='utf-8') as file:
        fieldnames = ['name', 'age', 'city']
        writer = csv.DictWriter(file, fieldnames=fieldnames)
        writer.writeheader()
        writer.writerow({'name': 'Alice', 'age': 30, 'city': 'New York'})
1.2 使用pandas处理CSV文件

pandas 提供了强大的数据操作能力,特别适合复杂数据分析和处理。

  • 读取CSV文件:pd.read_csv

    通过pandas.read_csv将CSV文件读取为DataFrame,支持选取指定列、筛选行等功能。

    python 复制代码
    import pandas as pd
    
    df = pd.read_csv('example.csv', usecols=['name', 'age'])  # 只读取指定列
    print(df.head())
  • 数据清洗和操作
    pandas 提供了多种数据操作方法,可以对DataFrame进行数据清洗、分组、聚合和排序。

    python 复制代码
    # 删除缺失数据的行
    df = df.dropna()
    
    # 过滤数据
    filtered_df = df[df['age'] > 25]
    
    # 排序数据
    sorted_df = df.sort_values(by='age', ascending=False)
  • 保存CSV文件:to_csv

    将数据写回CSV文件时,DataFrame.to_csv 方法支持调整分隔符和选择列等选项。

    python 复制代码
    df.to_csv('filtered_data.csv', index=False)
1.3 使用dask处理大文件

当数据量非常大时,dask库能够帮助你并行处理数据,类似于pandas但适用于大文件。

python 复制代码
import dask.dataframe as dd

# 读取大CSV文件
df = dd.read_csv('large_file.csv')

# 操作和筛选
filtered_df = df[df['age'] > 25]

# 保存结果
filtered_df.to_csv('filtered_large_data_*.csv', index=False)

2. Excel文件的处理方法

Excel文件包含多个工作表、格式、公式等复杂信息,适合于报告生成或多表格数据存储。

2.1 使用pandas读取和处理Excel文件

pandas提供的read_excelto_excel方法可以便捷地读写Excel文件。

  • 读取指定工作表:pd.read_excel

    可以通过sheet_name指定工作表名称,也可以读取所有工作表。

    python 复制代码
    df = pd.read_excel('example.xlsx', sheet_name='Sheet1')
    
    # 读取所有工作表
    sheets = pd.read_excel('example.xlsx', sheet_name=None)
    for sheet_name, sheet_df in sheets.items():
        print(f"Sheet: {sheet_name}")
        print(sheet_df.head())
  • 保存数据到Excel文件:to_excel
    to_excel可以写入单个或多个工作表,并支持格式控制。

    python 复制代码
    with pd.ExcelWriter('output.xlsx') as writer:
        df.to_excel(writer, sheet_name='Sheet1', index=False)
2.2 使用openpyxl处理单元格格式

openpyxl是一个适合处理Excel格式化的库,适合需要在Excel中加入样式或公式的情况。

  • 读取和写入数据

    python 复制代码
    from openpyxl import load_workbook
    
    # 打开Excel文件
    workbook = load_workbook('example.xlsx')
    sheet = workbook['Sheet1']
    
    # 读取单元格内容
    print(sheet['A1'].value)
    
    # 修改单元格内容
    sheet['B2'] = "Updated Value"
    workbook.save('modified_example.xlsx')
  • 添加样式和公式
    openpyxl可以应用单元格样式,加入公式和自动调整列宽等。

    python 复制代码
    from openpyxl.styles import Font, Color
    
    sheet['A1'].font = Font(bold=True, color="00FF00")
    sheet['B2'].value = '=SUM(B3:B10)'  # 添加公式
2.3 使用xlrdxlwt处理旧版Excel文件

对于.xls格式的旧版Excel文件,xlrdxlwt是有效的工具。

  • 读取旧版Excel文件
    xlrd用于读取.xls文件。

    python 复制代码
    import xlrd
    
    workbook = xlrd.open_workbook('example.xls')
    sheet = workbook.sheet_by_index(0)
    
    # 读取数据
    cell_value = sheet.cell(0, 0).value
    print(cell_value)
  • 写入旧版Excel文件
    xlwt可以创建新的.xls文件。

    python 复制代码
    import xlwt
    
    workbook = xlwt.Workbook()
    sheet = workbook.add_sheet('Sheet1')
    
    sheet.write(0, 0, 'Name')
    sheet.write(1, 0, 'Alice')
    workbook.save('example_old_format.xls')

3. CSV和Excel文件的选择

文件类型 优势 劣势 适用场景
CSV 文件体积小,处理速度快 不支持格式、公式等复杂数据 大数据量的存储和传输
Excel 支持多表格、格式和公式 文件大,处理速度慢 需要格式化展示、生成报告的情况

总结

Python提供了多种处理CSV和Excel文件的方法,选择合适的工具可以让数据处理更加高效。对于简单的数据操作,csv库即可满足需求;对于数据分析和处理,pandas非常强大。而在Excel文件中应用格式和公式时,openpyxlxlrd/xlwt更适合。。

相关推荐
喵手11 小时前
Python爬虫实战:数据质量治理实战 - 构建企业级规则引擎与异常检测系统!
爬虫·python·爬虫实战·异常检测·零基础python爬虫教学·数据质量治理·企业级规则引擎
头发够用的程序员11 小时前
Python 魔法方法 vs C++ 运算符重载全方位深度对比
开发语言·c++·python
加成BUFF11 小时前
基于DeepSeek+Python开发软件并打包为exe(VSCode+Anaconda Prompt实操)
vscode·python·prompt·conda·anaconda
盘古工具12 小时前
告别重复数据:Excel禁止重复输入的两种方法
windows·excel
52Hz11812 小时前
力扣46.全排列、78.子集、17.电话号码的字母组合
python·leetcode
子午12 小时前
【宠物识别系统】Python+深度学习+人工智能+算法模型+图像识别+TensorFlow+2026计算机毕设项目
人工智能·python·深度学习
好家伙VCC12 小时前
# 发散创新:用Python+Pandas构建高效BI数据清洗流水线在现代数据分析领域,**BI(商业智能)工具的核心竞
java·python·数据分析·pandas
七夜zippoe12 小时前
TensorFlow 2.x深度实战:从Keras API到自定义训练循环
人工智能·python·tensorflow·keras
励ℳ12 小时前
Python环境操作完全指南
开发语言·python
ljxp123456812 小时前
二叉树中序遍历算法详解
python