Python 处理 Excel 表格的 14 个常用操作

news2024/12/25 9:45:11

目录

1. 安装依赖库

2. 导入库

3. 读取Excel文件

4. 写入Excel文件

5. 创建工作表

6. 访问工作表

7. 读取单元格数据

8. 写入单元格数据

9. 获取行数和列数

10. 过滤数据

11. 排序数据

12. 添加新行

13. 删除行或列

14. 计算汇总统计

总结


无论是数据分析师、财务专员还是研究人员,Excel都是日常工作中必不可少的工具之一。而借助Python的强大功能,能够极大地提高Excel数据处理的效率和灵活性。接下来,让我们一起探索这些常用的Excel操作,为工作流程注入更多的便利和效率吧!

 

1. 安装依赖库

在命令行中使用`pip`命令安装`pandas`和`openpyxl`库,这两个库分别用于处理Excel和读/写Excel文件。


   pip install pandas openpyxl

2. 导入库

在Python脚本中导入`pandas`和`openpyxl`库。


   import pandas as pd
   from openpyxl import Workbook, load_workbook

3. 读取Excel文件

使用`read_excel()`函数从Excel文件中读取数据,该函数返回一个DataFrame对象,其中包含了Excel文件中的数据。


   data = pd.read_excel('filename.xlsx')

   注意,`filename.xlsx`是Excel文件的名称。

4. 写入Excel文件

使用`to_excel()`函数将数据写入Excel文件,该函数将DataFrame对象中的数据写入指定的Excel文件。


   data.to_excel('new_filename.xlsx', index=False)

   `index=False`表示不包含索引列。

5. 创建工作表

使用`create_sheet()`函数创建一个新的工作表。

   workbook = Workbook()
   worksheet = workbook.create_sheet('Sheet1')

   在这个例子中,我们创建了一个名为'Sheet1'的新工作表。

6. 访问工作表

使用`active`属性或`get_sheet_by_name()`函数访问现有工作表。

 

 worksheet = workbook.active
   # 或
   worksheet = workbook.get_sheet_by_name('Sheet1')

   `active`属性访问活动的工作表,而`get_sheet_by_name()`函数访问具有指定名称的工作表。

7. 读取单元格数据

使用`cell()`方法获取特定单元格的值,需要提供行号和列号。


   cell_value = worksheet.cell(row=1, column=1).value

   这个例子中,我们读取了第一行第一列的单元格数据。

8. 写入单元格数据

使用`cell()`方法将值写入特定的单元格,同样需要提供行号和列号。

   
   worksheet.cell(row=1, column=1, value='Hello')

   这个例子中,在第一行第一列的单元格写入了字符串'Hello'。

9. 获取行数和列数

使用`shape`属性获取数据表的行数和列数。

 num_rows = data.shape[0]
   num_cols = data.shape[1]

   `shape`属性返回一个包含行数和列数的元组。

10. 过滤数据

使用条件筛选语句过滤数据,例如,根据某一列的值大于特定值来过滤数据。


    filtered_data = data[data['Column'] > 10]

    这个例子中,我们过滤了具有'Column'列大于10的数据。

11. 排序数据

使用`sort_values()`函数按照指定列对数据进行排序。


    sorted_data = data.sort_values(by='Column')

    这个例子中,我们按照'Column'列对数据进行升序排序。

12. 添加新行

使用`append()`函数将新行数据添加到DataFrame对象中。
   

new_data = pd.DataFrame({'A': [1], 'B': [2], 'C': [3]})
    data = data.append(new_data, ignore_index=True)

    这个例子中,我们添加了一个包含'A'、'B'和'C'列的新行数据。

13. 删除行或列

使用`drop()`函数删除特定的行或列。

 data = data.drop(index=0) # 删除第一行
 data = data.drop(columns=['Column1', 'Column2']) # 删除指定列

    这个例子中,我们删除了第一行和名为'Column1'和'Column2'的列。

14. 计算汇总统计

使用`describe()`函数计算数据的基本统计信息,例如,均值、标准差等。


    summary_stats = data.describe()

    这个例子中,我们计算了数据的基本统计信息。

这些是使用Python处理Excel时常用的操作。根据具体需求,您可以选择其中一个或多个操作来处理和操作Excel文件。希望对您有所帮助!

总结

从读取和写入Excel文件、创建和访问工作表,到单元格数据的读取和写入,再到数据的过滤、排序和汇总统计,这些操作涵盖了数据处理过程中的关键步骤。使用Python处理Excel,不仅能够提高工作效率,还能为数据处理提供更多的灵活性和定制化选项。

同时要注意的是,这只是Excel处理中的冰山一角,Python在处理Excel方面还有更多强大的功能和库可供探索,例如xlrd、xlwt、xlsxwriter等。在工作中如果能够根据实际需求灵活运用这些技巧和工具,那么将大大提升数据处理的效率和质量。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CoordAtt注意力网络结构

源码: import torch import torch.nn as nn import math import torch.nn.functional as Fclass h_sigmoid(nn.Module):def __init__(self, inplaceTrue):super(h_sigmoid, self).__init__()self.relu nn.ReLU6(inplaceinplace)def forward(self, x):return self.…

杂记 | 记录一次使用docker安装gitlab-runner的过程(馋哭了)

文章目录 01 前情提要02 编写docker-compose.yml03 启动与注册04 流水线部署 01 前情提要 前不久使用docker部署好了自己的gitlab服务,简直香惨了。 上集传送门:记录一次使用Docker安装gitlab-ce的过程(含配置交换内存) 现在&am…

postgresql的在windows下的安装

postgresql的在windows下的安装 下载安装步骤超级用户设置密码本地化设置安装信息安装完成 查看postgresql服务pgAdmin的使用打开命令 行工具查询数据库版本 创建数据库 下载 官网地址 https://www.postgresql.org/ 下载页面 https://www.postgresql.org/download/ windows下…

Spring Boot 中的 AOP,到底是 JDK 动态代理还是 Cglib 动态代理

大家都知道,AOP 底层是动态代理,而 Java 中的动态代理有两种实现方式: 基于 JDK 的动态代理 基于 Cglib 的动态代理 这两者最大的区别在于基于 JDK 的动态代理需要被代理的对象有接口,而基于 Cglib 的动态代理并不需要被代理对…

TiDB数据库从入门到精通系列之六:使用 TiCDC 将 TiDB 的数据同步到 Apache Kafka

TiDB数据库从入门到精通系列之六:使用 TiCDC 将 TiDB 的数据同步到 Apache Kafka 一、技术流程二、搭建环境三、创建Kafka changefeed四、写入数据以产生变更日志五、配置 Flink 消费 Kafka 数据 一、技术流程 快速搭建 TiCDC 集群、Kafka 集群和 Flink 集群创建 c…

离谱的Bug

离谱的 Bug Bug 情况发现 Bug修改 Bug其他感受历史 Bug火星Spirit号Mars Global Surveyor任务 Bug 情况 有一次,我在开发一个网页应用程序时,遇到了一个令人目瞪口呆的Bug。这个Bug出现在一个特定的页面上,当用户点击某个按钮时,…

07微服务的事务管理机制

一句话导读 在单体应用程序中,事务通常是在单个数据库或单个操作系统中管理的,而在微服务架构中,事务需要跨越多个服务和数据库,这就使得事务管理变得更加复杂和困难。 目录 一句话导读 一、微服务事务管理的定义和意义 二、微…

ORCA优化器浅析——CDXLScalar Base class for representing scalar DXL operators

CDXLScalar类作为Base class for representing scalar DXL operators,该类只是定义一些接口,其中实现了GetDXLOperatorType函数,其返回EdxloptypeScalar,代表scalar DXL operators。 class CDXLScalar : public CDXLOperator{ pr…

迅捷视频工具箱:多功能音视频处理软件

这是一款以视频剪辑、视频转换、屏幕录像等特色功能为主,同时附带有视频压缩、视频分割、视频合并等常用视频处理功能为主的视频编辑软件。该软件操作简单易用,即使没有视频处理经验的用户也可以轻松上手。将视频添加到工具箱对应功能后,简单…

01- vdom 和模板编译源码

组件渲染的过程 template --> ast --> render --> vDom --> 真实的Dom --> 页面 Runtime-Compiler和Runtime-Only的区别 - 简书 编译步骤 模板编译是Vue中比较核心的一部分。关于 Vue 编译原理这块的整体逻辑主要分三个部分,也可以说是分三步&am…

sklearn机器学习库(二)sklearn中的随机森林

sklearn机器学习库(二)sklearn中的随机森林 集成算法会考虑多个评估器的建模结果,汇总之后得到一个综合的结果,以此来获取比单个模型更好的回归或分类表现。 多个模型集成成为的模型叫做集成评估器(ensemble estimator)&#xf…

RabbitMq-1基础概念

RabbitMq-----分布式中的一种通信手段 1. MQ的基本概念(message queue,消息队列) mq:消息队列,存储消息的中间件 分布式系统通信的两种方式:直接远程调用,借助第三方完成间接通信 消息的发送方是生产者&#xff0c…

爬虫逆向实战(九)--猿人学第十三题

一、数据接口分析 主页地址:猿人学第十三题 1、抓包 通过抓包可以发现数据接口是api/match/13 2、判断是否有加密参数 请求参数是否加密? 无请求头是否加密? 无响应是否加密? 无cookie是否加密? 在“cookie”模块…

python数据分析需要学哪些,python数据分析要学多久

大家好,小编为大家解答python数据分析应该学什么软件的问题。很多人还不知道python数据分析需要什么基础,现在让我们一起来看看吧! 根据调查结果,十大最常用的数据工具中有八个来自或利用Python。Python广泛应用于所有数据科学领域…

STM32 FLASH 读写数据

1. 《STM32 中文参考手册》,需要查看芯片数据手册,代码起始地址一般都是0x8000 0000,这是存放整个项目代码的起始地址 2. 编译信息查看代码大小,修改代码后第一次编译后会有这个提示信息 2.1 修改代码后编译,会有提示…

物联网在制造业中的应用

制造业目前正在经历第四次工业革命,物联网、人工智能和机器人等技术进步正在推动行业的发展。研究表明,到2024年,全球制造商将在物联网解决方案上投资700亿美元,许多制造商正在实施物联网设备,以利用预测性维护和复杂的…

优化GitHub网站访问慢的问题

方法一、修改host文件解决 大型网站服务器都不会是只有一台服务器,而是多台服务器组成的集群一起对外提供服务。 使用站长工具测速,找一个速度比较快的服务器。 图中可以看到140.82.121.4这个ip比较快, 下面修改hosts: Mac 在 /etc/hosts 中&#x…

.net连接mysql,提示找不到请求的 .Net Framework Data Provider。可能没有安装

开发完成的.net程序需要连接mysql数据库,在个人电脑上运行没问题,别人运行时提示“提示找不到请求的 .Net Framework Data Provider。可能没有安装”。经过查询,安装Connector/NET 8.1.0,下载地址如下所示: https://d…

Mac OS minicom 无法设置921600问题

MacOS minicom 无法设置921600问题 介绍过程解决方案参考资料 介绍 minicom是Mac上一款非常好用的串口工具。本文假设你已经安装minicom,并且知道minicom的一般配置和使用方法。这是“MacOS minicom 无法设置921600”的解决问题记录。它在以下环境中设置成功&#…

【制作npm包1】申请npm账号、认识个人包和组织包

概述 在开发当中经常有一种现象,重复代码写了N多遍,再次写同样的逻辑就再次翻查以前的代码逻辑。效率低下且容易出错,封装一个npm包的价值也不仅仅是给别人用,封装一套属于自己或者本部门的npm包也是相当有必要。 也许经常看到一…