Python操作Excel常用方法汇总

目录

引言

一、使用pandas库操作Excel

1、读取Excel文件

2、写入Excel文件

3、处理Excel数据

二、使用openpyxl库操作Excel

1、读取Excel文件

2、写入Excel文件

3、处理Excel数据

三、高级功能

总结


引言

Python是一种功能强大的编程语言,它可以用来处理各种类型的数据,包括Excel文件。在Python中,我们可以使用多种库来操作Excel文件,其中最常用的库是pandas和openpyxl。本文将介绍使用这两个库来读取、写入和处理Excel文件的常用方法。

一、使用pandas库操作Excel

pandas库是Python中一个流行的数据处理库,它提供了许多方便的方法来读取、写入和处理数据。下面是使用pandas库操作Excel的常用方法:

1、读取Excel文件

使用pandas库读取Excel文件非常简单,可以使用read_excel()函数来实现。下面是一个示例代码:

import pandas as pd  # 读取Excel文件  
df = pd.read_excel('example.xlsx')

在上面的代码中,我们使用pd.read_excel()函数读取了一个名为example.xlsx的Excel文件,并将结果存储在一个DataFrame对象中。

2、写入Excel文件

使用pandas库将数据写入Excel文件也非常方便,可以使用to_excel()函数来实现。下面是一个示例代码:

import pandas as pd  # 创建一个DataFrame对象  
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}  
df = pd.DataFrame(data)  # 将DataFrame对象写入Excel文件  
df.to_excel('output.xlsx', index=False)

在上面的代码中,我们创建了一个包含姓名和年龄数据的DataFrame对象,并使用to_excel()函数将数据写入了一个名为output.xlsx的Excel文件中。index=False参数表示不将行索引写入Excel文件中。

3、处理Excel数据

使用pandas库处理Excel数据非常灵活,可以通过对DataFrame对象进行各种操作来实现。下面是一个示例代码:

import pandas as pd  # 读取Excel文件  
df = pd.read_excel('example.xlsx')  # 对数据进行处理  
df['Age'] = df['Age'].astype(int)  # 将年龄列转换为整数类型  
df = df.dropna()  # 删除包含空值的行  
df = df.sort_values('Age')  # 按年龄排序

在上面的代码中,我们首先使用pd.read_excel()函数读取了一个Excel文件,并将数据存储在一个DataFrame对象中。然后,我们对数据进行了处理,包括将年龄列转换为整数类型、删除包含空值的行、按年龄排序等操作。

二、使用openpyxl库操作Excel

openpyxl是一个专门用于处理Excel文件的库,它支持读取、写入和处理Excel文件的各个部分,包括工作表、单元格等。下面是使用openpyxl库操作Excel的常用方法:

1、读取Excel文件

使用openpyxl库读取Excel文件需要打开文件并获取工作簿对象,然后可以访问工作表、单元格等不同部分。下面是一个示例代码:

from openpyxl import load_workbook  # 打开Excel文件并获取工作簿对象  
wb = load_workbook('example.xlsx')  # 获取工作表对象和单元格对象  
ws = wb.active  # 获取活动工作表对象  
cell = ws['A1']  # 获取A1单元格对象

2、写入Excel文件

使用openpyxl库写入Excel文件需要创建一个新的工作簿对象,然后添加工作表、单元格等不同部分。下面是一个示例代码:

from openpyxl import Workbook  # 创建一个新的工作簿对象  
wb = Workbook()  # 创建一个新的工作表对象并命名为"Sheet1"  
ws = wb.active  
ws.title = "Sheet1"  # 创建一个单元格对象并设置值为"Hello, World!"  
cell = ws['A1']  
cell.value = "Hello, World!"  # 保存工作簿到文件"output.xlsx"  
wb.save("output.xlsx")

在上面的代码中,我们首先创建了一个新的工作簿对象,然后添加了一个名为"Sheet1"的工作表对象。接着,我们创建了一个单元格对象并设置其值为"Hello, World!"。最后,我们将工作簿保存到名为"output.xlsx"的文件中。

3、处理Excel数据

使用openpyxl库处理Excel数据可以通过访问和修改单元格、工作表等不同部分的数据来实现。下面是一个示例代码:

from openpyxl import load_workbook  # 打开Excel文件并获取工作簿对象  
wb = load_workbook('example.xlsx')  # 获取工作表对象和单元格对象  
ws = wb.active  
cell = ws['A1']  # 处理数据并设置单元格的值  
cell.value = "Hello, World!" + str(cell.value)  # 保存工作簿到文件"output.xlsx"  
wb.save("output.xlsx")

在上面的代码中,我们首先打开了名为"example.xlsx"的Excel文件并获取了工作簿对象。然后,我们获取了A1单元格对象并访问了其值。接着,我们将字符串"Hello, World!"与单元格的值拼接起来,并将结果赋值给单元格对象。最后,我们将工作簿保存到名为"output.xlsx"的文件中。

三、高级功能

除了基本的读取、写入和处理Excel数据,openpyxl库还提供了许多高级功能,例如格式化单元格、添加图表等。下面是一个示例代码,演示了如何使用openpyxl库创建Excel图表:

from openpyxl import Workbook  
from openpyxl.chart import BarChart, Reference  # 创建一个新的工作簿对象  
wb = Workbook()  # 创建一个新的工作表对象并命名为"Sheet1"  
ws = wb.active  
ws.title = "Sheet1"  # 创建一些数据  
data = [  ['Country', 'Population'],  ['China', 1403500365],  ['India', 1363407782],  ['United States', 3293302651],  ['Indonesia', 276361783],  ['Pakistan', 225199937],  
]  # 将数据写入工作表  
for row in data:  ws.append(row)  # 创建一个数据引用对象  
chart_data = Reference(ws, min_col=2, min_row=1, max_col=3, max_row=6)  # 创建一个条形图对象并设置标题和数据引用对象  
chart = BarChart()  
chart.title = "Top 5 Countries by Population"  
chart.add_data(chart_data)  # 将图表添加到工作表中  
ws.add_chart(chart, "E5")  # 保存工作簿到文件"output.xlsx"  
wb.save("output.xlsx")

在上面的代码中,我们首先创建了一个新的工作簿和工作表对象,并添加了一些数据。然后,我们使用Reference类创建了一个数据引用对象,该对象引用了工作表中的某些列和行。接着,我们创建了一个条形图对象并设置标题和数据引用对象。最后,我们将图表添加到工作表中,并将工作簿保存到名为"output.xlsx"的文件中。

总结

在本文中,我们介绍了使用pandas和openpyxl库进行Excel数据操作的方法。通过使用pandas库的read_excel函数,我们可以轻松地读取Excel文件并将数据存储在DataFrame对象中。使用to_excel函数,我们可以将DataFrame对象中的数据写入Excel文件中。此外,我们还介绍了使用openpyxl库来处理Excel数据的各种方法,包括访问和修改单元格、工作表等不同部分的数据,以及创建图表等高级功能。

总之,使用pandas和openpyxl库可以方便地操作Excel数据,包括读取、写入和处理数据。这些库提供了灵活和高效的方法来处理Excel文件,可以帮助我们更好地分析和利用Excel数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/193330.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记一次解决Pyqt6/Pyside6添加QTreeView或QTreeWidget导致窗口卡死(未响应)的新路历程,打死我都想不到是这个原因

文章目录 💢 问题 💢🏡 环境 🏡📄 代码💯 解决方案 💯⚓️ 相关链接 ⚓️💢 问题 💢 我在窗口中添加了一个 QTreeWidget控件 ,但是程序在运行期间,只要鼠标进入到 QTreeWidget控件 内进行操作,时间超过几秒中就会出现窗口 未响应卡死的 状态 🏡 环境 �…

代码随想录算法训练营第二十七天|39 组合总和 40 组合总和II 131分割回文串

目录 39 组合总和 40 组合总和II 131分割回文串 39 组合总和 class Solution {List<List<Integer>>res new ArrayList<>();List<Integer>newList new LinkedList<>();public List<List<Integer>> combinationSum(int[] candid…

【教3妹学编程-算法题】三个无重叠子数组的最大和

2哥 : 3妹&#xff0c;咋啦&#xff1f;一副苦大仇深的样子&#xff1f; 3妹&#xff1a;不开心呀不开心&#xff0c;羽生结弦宣布离婚。 2哥 : 羽生什么&#xff1f; 3妹&#xff1a;羽生结弦&#xff01; 2哥 : 什么结弦&#xff1f; 3妹&#xff1a;羽生结弦&#xff01;&am…

小美的树上染色

美团2024届秋招笔试第一场编程真题 先提一个小知识&#xff1a;题目中凡是提到树结构都要使用图的存储方式&#xff0c;只有二叉树例外。 分析&#xff1a;在树结构中&#xff0c;孩子和父节点是相邻节点&#xff0c;而父节点可能有多个孩子节点。在染色的过程中&#xff0c;…

AIGC实战 - 使用变分自编码器生成面部图像

AIGC实战 - 使用变分自编码器生成面部图像 0. 前言1. 数据集分析2. 训练变分自编码器2.1 变分自编码器架构2.2 变分自编码器分析 3. 生成新的面部图像4. 潜空间算术5. 人脸变换小结系列链接 0. 前言 在自编码器和变分自编码器上&#xff0c;我们都仅使用具有两个维度的潜空间。…

037、目标检测-算法速览

之——常用算法速览 目录 之——常用算法速览 杂谈 正文 1.区域卷积神经网络 - R-CNN 2.单发多框检测SSD&#xff0c;single shot detection 3.yolo 杂谈 快速过一下目标检测的各类算法。 正文 1.区域卷积神经网络 - R-CNN region_based CNN&#xff0c;奠基性的工作。…

vscode pandas无法使用

一、代码内容 import csv csv_reader csv.reader(open("data.csv")) for row in csv_reader:print(row) print(row[2]) 二、错误提示 ModuleNotFoundError: No module named pandas 三、安装pandas 然后我安装pandas&#xff0c;因为我的python的版本是python …

【算法挨揍日记】day31——673. 最长递增子序列的个数、646. 最长数对链

673. 最长递增子序列的个数 673. 最长递增子序列的个数 题目解析&#xff1a; 给定一个未排序的整数数组 nums &#xff0c; 返回最长递增子序列的个数 。 注意 这个数列必须是 严格 递增的。 解题思路&#xff1a; 算法思路&#xff1a; 1. 状态表⽰&#xff1a; 先尝试…

理论与实践相结合之Cisco Packet Tracer网络模拟器安装教程

简介 Packet Tracer是由思科设计的跨平台可视化仿真工具&#xff0c;它允许用户创建网络拓扑以模仿计算机网络和使用命令行界面来模拟配置思科路由器和交换机。Packet Tracer的用户界面为拖放式&#xff0c;允许用户根据自己的需要添加和删除模拟的网络设备。 Packet Tracer很…

电商平台革新:食派士小程序的无代码开发与广告推广集成

食派士小程序&#xff1a;无代码开发的连接神器 食派士小程序&#xff0c;作为上海食派士商贸发展有限公司的专利产品&#xff0c;是一种凭借无代码开发&#xff0c;就能实现与各种系统的连接和集成的电商解决方案。它采用无代码开发的方式&#xff0c;避免了API开发的复杂过程…

fusion 360制作机械臂

参考教程&#xff1a;Industrial Robot ( PART - 5) - FUSION 360 TUTORIAL_哔哩哔哩_bilibili

UE 程序化网格 计算横截面 面积

首先在构造函数内加上程序化网格&#xff0c;然后复制网格体到程序化网格组件上&#xff0c;将Static Mesh&#xff08;类型StaticMeshActor&#xff09;的静态网格体组件给到程序化网格体上 然后把StaticMesh&#xff08;类型为StaticMeshActor&#xff09;Instance暴漏出去 …