用 Python 处理 CSV 和 Excel 文件

news/2025/1/19 1:57:40/

💖 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。

🔍 博客内容包括:

  • Java核心技术与微服务:涵盖Java基础、JVM、并发编程、Redis、Kafka、Spring等,帮助您全面掌握企业级开发技术。
  • 大数据技术:涵盖Hadoop(HDFS)、Hive、Spark、Flink、Kafka、Redis、ECharts、Zookeeper等相关技术。
  • 开发工具:分享常用开发工具(IDEA、Git、Mac、Alfred、Typora等)的使用技巧,提升开发效率。
  • 数据库与优化:总结MySQL及其他常用数据库技术,解决实际工作中的数据库问题。
  • Python与大数据:专注于Python编程语言的深度学习,数据分析工具(如Pandas、NumPy)和大数据处理技术,帮助您掌握数据分析、数据挖掘、机器学习等技术。
  • 数据结构与算法:总结数据结构与算法的核心知识,提升编程思维,帮助您应对大厂面试挑战。

🌟 我的目标:持续学习与总结,分享技术心得与解决方案,和您一起探索技术的无限可能!在这里,我希望能与您共同进步,互相激励,成为更好的自己。

📣 欢迎订阅本专栏,与我一起在这个知识的海洋中不断学习、分享和成长!💻🚀


📍版权声明:本博客所有内容均为原创,遵循CC 4.0 BY-SA协议,转载请注明出处。

目录

1. CSV 文件概述和处理方法

1.1 CSV 文件格式的基本介绍

csv%20%E6%A8%A1%E5%9D%97%E5%A4%84%E7%90%86%20CSV%20%E6%96%87%E4%BB%B6-toc" style="margin-left:80px;">1.2 使用 Python 内置 csv 模块处理 CSV 文件

读取 CSV 文件

 写入 CSV 文件

使用 DictReader 和 DictWriter

pandas%20%E5%A4%84%E7%90%86%20CSV%20%E6%96%87%E4%BB%B6-toc" style="margin-left:80px;">1.3 使用 pandas 处理 CSV 文件

读取 CSV 文件

写入 CSV 文件

数据过滤和操作

2. Excel 文件概述和处理方法

2.1 Excel 文件格式的基本介绍

2.2 使用 openpyxl 处理 Excel 文件

读取 Excel 文件

写入 Excel 文件

设置单元格样式

2.3 使用 xlrd 和 xlwt 处理 Excel 文件

读取 Excel 文件(xlrd)

写入 Excel 文件(xlwt)

pandas%20%E5%A4%84%E7%90%86%20Excel%20%E6%96%87%E4%BB%B6-toc" style="margin-left:80px;">2.4 使用 pandas 处理 Excel 文件

读取 Excel 文件

写入 Excel 文件

3. CSV 与 Excel 文件的比较与选择

3.1 CSV 与 Excel 的异同

3.2 选择合适的文件格式

3.3 优化大数据量文件的读取与写入

4. 性能优化和进阶技巧

pandas%20%E4%BC%98%E5%8C%96%E5%A4%A7%E6%96%87%E4%BB%B6%E7%9A%84%E8%AF%BB%E5%8F%96%E4%B8%8E%E5%A4%84%E7%90%86-toc" style="margin-left:80px;">4.1 使用 pandas 优化大文件的读取与处理

4.2 异常数据的清洗与处理

4.3 批量处理 CSV 和 Excel 文件

5. 常见问题与错误处理

5.1 处理文件编码问题

5.2 数据缺失值的处理

5.3 Excel 文件读写中的常见错误


1. CSV 文件概述和处理方法

1.1 CSV 文件格式的基本介绍

CSV(Comma-Separated Values,逗号分隔值)文件是一种简单的文本文件格式,用于存储表格数据,其中每一行代表一条记录,行中的每个字段通过逗号分隔。CSV 文件通常用于数据交换和存储。它的优点是简单、轻量、易于读取和写入,缺点是无法存储复杂的格式和公式。

例如,一个典型的 CSV 文件内容如下:

Name,Age,Gender
Alice,25,Female
Bob,30,Male
Charlie,35,Male

csv%20%E6%A8%A1%E5%9D%97%E5%A4%84%E7%90%86%20CSV%20%E6%96%87%E4%BB%B6">1.2 使用 Python 内置 csv 模块处理 CSV 文件

Python 提供了内置的 csv 模块,用于读取和写入 CSV 文件。它提供了简单的接口,可以直接与文件进行交互。

读取 CSV 文件
python">import csv# 打开 CSV 文件
with open('example.csv', mode='r') as file:reader = csv.reader(file)for row in reader:print(row)
 写入 CSV 文件
python">import csv# 数据准备
data = [['Name', 'Age', 'Gender'], ['Alice', 25, 'Female'], ['Bob', 30, 'Male']]# 写入 CSV 文件
with open('output.csv', mode='w', newline='') as file:writer = csv.writer(file)writer.writerows(data)
使用 DictReaderDictWriter

对于键值对的操作,可以使用 DictReaderDictWriter,它们允许以字典的形式读取和写入数据。

python">import csv# 读取 CSV 文件为字典
with open('example.csv', mode='r') as file:reader = csv.DictReader(file)for row in reader:print(row)# 写入 CSV 文件为字典
data = [{'Name': 'Alice', 'Age': 25, 'Gender': 'Female'}, {'Name': 'Bob', 'Age': 30, 'Gender': 'Male'}]
with open('output.csv', mode='w', newline='') as file:fieldnames = ['Name', 'Age', 'Gender']writer = csv.DictWriter(file, fieldnames=fieldnames)writer.writeheader()writer.writerows(data)

pandas%20%E5%A4%84%E7%90%86%20CSV%20%E6%96%87%E4%BB%B6">1.3 使用 pandas 处理 CSV 文件

pandas 是一个强大的数据分析库,提供了更高级和方便的 CSV 文件处理功能。它使用 read_csvto_csv 方法,可以直接将 CSV 文件读取为 DataFrame 数据结构,并支持复杂的数据操作。

读取 CSV 文件
python">import pandas as pd# 读取 CSV 文件为 DataFrame
df = pd.read_csv('example.csv')
print(df)
写入 CSV 文件
python">import pandas as pd# 数据准备
data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30], 'Gender': ['Female', 'Male']}
df = pd.DataFrame(data)# 写入 CSV 文件
df.to_csv('output.csv', index=False)
数据过滤和操作
python"># 过滤年龄大于 30 的行
filtered_df = df[df['Age'] > 30]
print(filtered_df)# 添加新列
df['Country'] = ['USA', 'UK']
print(df)

2. Excel 文件概述和处理方法

2.1 Excel 文件格式的基本介绍

Excel 文件是一种用于电子表格的文件格式,支持表格数据、公式、图表和其他格式化内容。Excel 文件有两种常见的格式:

  • .xls:Excel 97-2003 的文件格式,基于二进制格式。
  • .xlsx:Excel 2007 及以后的版本使用的 XML 基础格式,支持更多功能。

2.2 使用 openpyxl 处理 Excel 文件

openpyxl 是 Python 用于读取和写入 Excel .xlsx 文件的第三方库。

读取 Excel 文件
python">from openpyxl import load_workbook# 加载 Excel 文件
wb = load_workbook('example.xlsx')
sheet = wb.active# 读取单元格数据
for row in sheet.iter_rows(values_only=True):print(row)
写入 Excel 文件
python">from openpyxl import Workbook# 创建一个新的 Excel 文件
wb = Workbook()
sheet = wb.active# 写入数据
sheet['A1'] = 'Name'
sheet['A2'] = 'Alice'
sheet['B1'] = 'Age'
sheet['B2'] = 25# 保存 Excel 文件
wb.save('output.xlsx')
设置单元格样式
python">from openpyxl.styles import Font, Color, Alignment# 设置字体和对齐
sheet['A1'].font = Font(bold=True, color="FF0000")
sheet['A1'].alignment = Alignment(horizontal="center")wb.save('styled_output.xlsx')

2.3 使用 xlrdxlwt 处理 Excel 文件

xlrd 用于读取 .xls 文件,而 xlwt 用于写入 .xls 文件。

读取 Excel 文件(xlrd
python">import xlrd# 打开 Excel 文件
workbook = xlrd.open_workbook('example.xls')
sheet = workbook.sheet_by_index(0)# 读取数据
for row in range(sheet.nrows):print(sheet.row_values(row))
写入 Excel 文件(xlwt
python">import xlwt# 创建 Excel 文件
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Sheet1')# 写入数据
sheet.write(0, 0, 'Name')
sheet.write(0, 1, 'Age')
sheet.write(1, 0, 'Alice')
sheet.write(1, 1, 25)# 保存 Excel 文件
workbook.save('output.xls')

pandas%20%E5%A4%84%E7%90%86%20Excel%20%E6%96%87%E4%BB%B6">2.4 使用 pandas 处理 Excel 文件

pandas 同样提供了强大的 Excel 文件处理功能,通过 read_excelto_excel 方法,可以方便地读取和写入 Excel 文件。

读取 Excel 文件
python">import pandas as pd# 读取 Excel 文件为 DataFrame
df = pd.read_excel('example.xlsx')
print(df)
写入 Excel 文件
python">import pandas as pd# 数据准备
data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30], 'Gender': ['Female', 'Male']}
df = pd.DataFrame(data)# 写入 Excel 文件
df.to_excel('output.xlsx', index=False)

3. CSV 与 Excel 文件的比较与选择

3.1 CSV 与 Excel 的异同

  • CSV 文件:简单的文本文件,易于存储和传输,但无法保存复杂的格式、公式和图表。适用于存储纯数据。
  • Excel 文件:支持丰富的格式、公式、图表等功能。适用于需要复杂格式和计算的场景。

3.2 选择合适的文件格式

  • 数据量较小且不需要复杂格式:选择 CSV 格式。
  • 需要支持公式、图表或复杂格式:选择 Excel 格式。

3.3 优化大数据量文件的读取与写入

  • 使用 pandaschunksize 参数分批读取大文件。
  • 使用 openpyxl 时,避免一次性加载整个工作簿,分批加载和保存数据。

4. 性能优化和进阶技巧

pandas%20%E4%BC%98%E5%8C%96%E5%A4%A7%E6%96%87%E4%BB%B6%E7%9A%84%E8%AF%BB%E5%8F%96%E4%B8%8E%E5%A4%84%E7%90%86">4.1 使用 pandas 优化大文件的读取与处理

对于大数据量的文件,pandas 提供了 chunksize 参数,允许按块读取 CSV 或 Excel 文件,从而避免一次性将所有数据加载到内存中。

python">import pandas as pdchunk_size = 10000
chunks = pd.read_csv('large_file.csv', chunksize=chunk_size)
for chunk in chunks:# 处理每一块数据print(chunk.head())

4.2 异常数据的清洗与处理

处理 CSV 或 Excel 文件时,常常会遇到缺失值、重复数据等问题。使用 pandas 可以方便地进行数据清洗

python"># 去除缺失值
df.dropna(inplace=True)# 填充缺失值
df.fillna(0, inplace=True)# 去除重复数据
df.drop_duplicates(inplace=True)

4.3 批量处理 CSV 和 Excel 文件

对于多个文件的处理,可以使用 os 模块遍历文件夹,批量读取和写入文件。

python">import os
import pandas as pdfor file in os.listdir('csv_files'):if file.endswith('.csv'):df = pd.read_csv(f'csv_files/{file}')# 处理文件df.to_csv(f'processed_{file}', index=False)

5. 常见问题与错误处理

5.1 处理文件编码问题

在处理 CSV 文件时,可能会遇到编码问题。可以使用 encoding 参数指定文件的编码格式。

python">df = pd.read_csv('file.csv', encoding='utf-8')

5.2 数据缺失值的处理

缺失值处理是数据分析中的常见问题,可以通过 pandas 提供的 dropnafillna 方法进行处理。

5.3 Excel 文件读写中的常见错误

在使用 openpyxlpandas 处理 Excel 文件时,常见的错误包括文件格式不兼容、文件损坏等。需要确保文件路径正确,并使用适当的库来处理文件格式。


http://www.ppmy.cn/news/1564282.html

相关文章

【Java】—— 基于Websocket实现页面聊天效果

基于SpringBootVue和Websocket实现页面聊天效果,如下: 一、WebSocket 的主要特点 全双工通信:一旦 WebSocket 连接建立,客户端和服务器就可以随时相互发送消息,而不需要一方必须先发起请求。 较少的控制开销&#xf…

DNVS许可分析的数据可视化

在数字化时代,数据可视化已成为企业决策的重要工具。DNVS许可分析的数据可视化将复杂的合规数据转化为直观、易理解的图形和图表,帮助企业快速洞察合规风险,做出明智的决策。本文将探讨DNVS许可分析数据可视化的重要性及其如何助力企业实现合…

4 AXI USER IP

前言 使用AXI Interface封装IP,并使用AXI Interface实现对IP内部寄存器进行读写实现控制LED的demo,这个demo是非常必要的,因为在前面的笔记中基本都需哟PS端与PL端就行通信互相交互,在PL端可以通过中断的形式来告知PS端一些事情&…

大模型(LLM)的若干科普之问(四):OpenAI 的 API 接口规范与openai库

一、OpenAI 的 API 接口规范 OpenAI 的 API 接口规范是基于 RESTful API 设计的,主要用于与 OpenAI 的大型语言模型(如 GPT-3、GPT-4 等)进行交互。以下是 OpenAI API 的基本接口规范和使用方法: 1. API 基础信息 API 地址: htt…

【AI日记】25.01.16

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 AI kaggle 比赛:Forecasting Sticker Sales 读书 书名:罗素论幸福评估:读完,不错 律己 AI: 8 小时,良作息&#xff1…

【ComfyUI专栏】Git Clone 下载自定义节点的代理设置

我们实际在使用ComfyUI 下载节点的时候会碰到下载缓慢的问题,这个问题如何解决呢?有没有比较好的办法解决下载和复制缓慢的问题呢?这个就涉及到我们使用代理的方式进行节点下载的方式了。首先确定我们当前的代理服务器的设置,也就是IP地址和端口问题。 开启Cmd命令,执行如…

程序设计安全方案,软件开发安全指南,信息系统安全管理规范(Word原件)

2.1.应用系统架构安全设计要求 2.2.应用系统软件功能安全设计要求 2.3.应用系统存储安全设计要求 2.4.应用系统通讯安全设计要求 2.5.应用系统数据库安全设计要求 2.6.应用系统数据安全设计要求 软件全套精华资料包清单部分文件列表: 工作安排任务书,可行…

Ubuntu20.4和docker终端指令、安装Go环境、安装搜狗输入法、安装WPS2019:保姆级图文详解

目录 前言1、docker、node、curl版本查看终端命令1.1、查看docker版本1.2、查看node.js版本1.3、查看curl版本1.4、Ubuntu安装curl1.5、Ubuntu终端保存命令 2、安装docker-compose、Go语言2.1、安装docker-compose2.2、go语言安装步骤2.3、git版本查看 3、Ubuntu20.4安装搜狗输…