用Python玩转Excel的五大功能!

在日常的数据处理工作中,Excel无疑是一个强大的工具。然而,当数据量较大或需要自动化处理时,Python凭借其强大的库支持,如pandas和openpyxl,能够更高效地处理Excel文件。

本文将介绍Python中常用的五种Excel操作**,**并额外添加两个实用功能,帮助你提升数据处理和文件美化能力。

一、读写Excel数据

为了演示方便,我们先生成一张Excel表:

import pandas as pd  \# 创建一个DataFrame  
data = {  'Name': \['John', 'Anna', 'Peter', 'Linda'\],  'Age': \[28, 34, 29, 32\]  
}  
df = pd.DataFrame(data)  \# 写入Excel文件  
df.to\_excel('output.xlsx', index=False)  \# 读取Excel文件  
df = pd.read\_excel('output.xlsx', sheet\_name='Sheet1')  
print(df)

我们生产了一个dataframe数据表,利用to_excel函数将这个表保存到本地路径,保存为’output.xlsx’。

然后再用read_excel函数将这个Excel表读取进来,数据如下:

现在,这些数据已经被保存到output.xlsx这个Excel表格中,接下来我们对这份数据进行后续操作。

二、修改Excel文件

现在我们将第一个人“John”的年龄改为30岁:

\# 读取Excel文件   
df = pd.read\_excel('output.xlsx')  \# 修改数据   
df.loc\[0, 'Age'\] = 30  \# 将第一行的Age改为30   \# 写入Excel文件   
df.to\_excel('modified.xlsx', index=False)

我们先把刚才保存好的output.xlsx读取进来,修改第一个人的年龄为30岁,然后再保存为modified.xlsx。

可以看到,当前路径下有两张Excel表格。

我们打开modified.xlsx看看:

可以看到John的年龄被修改为30岁了。

三、添加和删除行列

接下来,我们在modified.xlsx表格的基础上做一些添加和删除的操作

●新增一个人的信息;

●添加一列“Pet”,给这几位靓仔添加一些宠物;

●为了保护个人隐私,把City这一列删除。

如下:

\# 读取Excel文件   
df = pd.read\_excel('modified.xlsx')  \# 添加行  
df.loc\[4, :\] = \['Bob', 45, 'Osaka', 'Dancer'\]  
\# 添加列  
df\['Pet'\] = \['Cat', 'Lion', 'Dog', 'Tiger', 'Monkey'\]  
\# 删除列  
df.drop('City', axis=1, inplace=True)  \# 写入Excel文件  
df.to\_excel('modified2.xlsx', index=False)

我们首先利用df.loc定位到最后一行,新增Bob的相关信息,然后添加Pet这一列的信息,删除Age这一列,最后保存为modified2.xlsx:

可以看到,Bob的信息被添加进去了,而且City也被删除了,此外,每位靓仔都拥有了一个宠物!

四、筛选和排序数据

接下来,我们把表格中年龄大于30岁的人筛选出来,保存到另一张Excel表中:

\# 读取Excel文件  
df = pd.read\_excel('modified2.xlsx')  \# 筛选Age大于30的数据  
filtered\_df = df\[df\['Age'\] > 30\]  
\# 按Age列排序   
sorted\_df = df.sort\_values(by='Age')  \# 写入Excel文件  
df.to\_excel('modified3.xlsx', index=False)

首先依然是读取Excel表格,然后利用dataframe的筛选语句,筛选出Age这一列大于30的人,再用sort_values函数进行排序。

注意,**sort_values函数默认为升序排列,**如果想改为降序排列,需要设定参数ascending=False。

现在新生成的modified3.xlsx表格如下:

五、实现Excel的VLOOKUP

最后我们来点复杂的操作,**实现Excel的王牌函数:**VLOOKUP!

VLOOKUP函数本质上是把两种表格按照某列关键字进行横向拼接,现在我们再生成一张新表:

没错,就是刚才我们删除的City……这张新表命名为city.xlsx。

现在我们要以Name这一列作为关键字,把modified3.xlsx与city.xlsx这两张表进行横向拼接:

\# VLOOLUP函数  
df1 = pd.read\_excel('modified3.xlsx')  
df2 = pd.read\_excel('city.xlsx')  
df\_new = pd.merge(df1, df2, on='Name', how='left')  
df\_new.to\_excel('last.xlsx')  
print(df\_new)

这段代码的关键点在于pd.merge函数。

该函数的主要参数如下:

●前两个参数的参与拼接的表格,df1是左表,df2是右表;

●on参数用于指定关键字,一般只用一个关键字;

●how参数用于设定合并方式,可以设定为’left’, ‘right’, ‘inner’或’outer’。**这里我们设定为’left’,意思是以左表df1作为标准进行合并。**左表是读取的modified3.xlsx, 这张表里只有年龄大于30岁的人。

最终生成的last.xlsx表格如下:

任务完成!

通过本文,你学习了如何使用Python进行常用的Excel操作。这些操作能够帮助你更高效地处理大量数据,提升工作效率。

掌握这些技能后,你可以进一步探索python办公自动化的其他功能,以应对更复杂的数据处理需求。

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

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

相关文章

单链表--续(C语言详细版)

2.6 在指定位置之前插入数据 // 在指定位置之前插入数据 void SLTInsert(SLTNode** pphead, SLTNode* pos, SLTDataType x); 分为两种情况:1. 插入的数据在链表中间;2. 插入的数据在链表的前面。 // 在指定位置之前插入数据 void SLTInsert(SLTNode** …

快团团团长如何获得物流查询码以及如何查询呢?

快团团团长如何获得物流查询码以及如何查询呢? 一、功能说明 团长可自行生成物流查询码,直接将码发给顾客,顾客扫码可查询自己订单的物流状态! 用户扫码后,会出现用户在该团长处下单的所有快递订单。团员可查看该订…

基于Booth乘法和Wallace树的乘法器优化思想

基于Booth乘法和Wallace树的快速乘法器 为了理解Booth乘法和Wallace数如何让乘法器变得更快: 先考虑不优化的8位乘法器实现,即8个16位数字累积共进行7次加法运算,可以认为一次16位加法用到16个全加器,则共需要112个全加器件&…

【Vscode】显示多个文件 打开多个文件时实现标签栏多行显示

Vscode显示多个文件&VSCode打开多个文件时实现标签栏多行显示 写在最前面一、解决打开文件的时候只显示一个tab的办法解决办法如下: 二、文件标签栏多行显示设置步骤: 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时…

SpringBoot新手快速入门系列教程七:基于一个低配centoos服务器,如何通过宝塔面板部署一个SpringBoot项目

1,如何打包一个项目 通过IDEA自带的命令行,执行 ./gradlew clean build 2,检查生成的JAR文件 进入 build/libs 目录,你应该会看到一个类似 helloredis-0.0.1-SNAPSHOT.jar 的文件。 3:运行生成的JAR文件 你可以在…

C++的介绍与认识

目录 前言 1.什么是C 2.C的发展历史 3.C参考文档 4.C重要性 4.1C特点 4.2编程语言排行榜 4.3 C的应用领域 5.C学习指南 1. 基础知识 2. 面向对象编程(OOP) 3. 泛型编程 4. 标准库(STL) 结束语 前言 学习了C语言的知识…

Day06-角色管理-员工管理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.编辑角色-进入行内编辑2.角色管理-行内编辑-数据缓存3.角色管理-编辑角色-确定取消4.角色管理-删除角色员工管理-页面结构6.员工管理-左侧树7.员工管理-选中首个节…

算法的复杂度

文章目录 一、算法的效率1、复杂度的概念2、复杂度的重要性 二、时间复杂度三、空间复杂度四、大O的渐进表示发五、计算复杂度案例1、计算Func1函数的复杂度2、计算Fun2的时间复杂度3、计算Func3的时间复杂度4、计算Func4的时间复杂度5、计算strchr的时间复杂度6、计算Func5的时…

SuperCLUE最新测评发布,360智脑大模型稳居大模型第一梯队

7月9日,国内权威大模型评测机构SuperCLUE发布《中文大模型基准测评2024上半年报告》,360智脑大模型(360gpt2-pro)在SuperCLUE基准6月测评中,取得总分72分,超过GPT-3.5-Turbo-0125,位列国内大模型…

[GICv3] 3. 物理中断处理(Physical Interrupt Handling)

中断生命周期 ​​ 外设通过中断信号线生成中断,或者软件生成中断(SGI)。Distributor 和 ReDistributor 配合按照中断分组和中断优先级仲裁后将最高优先级的中断分发到 CPU interface。cpu interface 向中断发送到 PEPE 读取 IAR 寄存器&am…

Global Mapper:地理信息的温柔探索

引言 在这纷繁复杂的世界里,地理信息系统(GIS)如同一把利器,帮助我们剖析、理解和改造这个世界。而在众多GIS软件中,Global Mapper无疑是其中的佼佼者。作为一款功能全面且易于使用的GIS应用程序,Global M…

【服务器】在Linux查看运行的Python程序,并找到特定的Python程序

在Linux查看运行的Python程序并找到特定的Python程序 写在最前面1. 使用ps命令查看所有Python进程查看详细信息 2. 使用pgrep命令查找Python进程ID 3. 使用top或htop命令使用top命令使用htop命令 4. 使用lsof命令查找Python进程打开的文件 5. 使用nvidia-smi命令查看GPU使用情况…

InstructPix2Pix Learning to Follow Image Editing Instructions

InstructPix2Pix: Learning to Follow Image Editing Instructions TL; DR:核心是使用 GPT3 SD P2P 来机造指令编辑训练数据。 数据 本文要做的事情是教会模型根据指令来进行图像编辑。样例如下图所示,给定一张向日葵的图片和指令 “将向日葵换为玫…

zynq使用简单I/O对Flash进行读写测试

硬件环境:ALINX 7020 ZYNQ的QSPI Flash 控制器有以下三种模式:I/O 模式、线性地址模式,以及传统 SPI 模式。 I/O模式 操作特点:在I/O模式下,软件模拟去实现 Flash 器件的通信协议。软件需要将 Flash 命令和数据写到控…

【深度学习入门篇 ②】Pytorch完成线性回归!

🍊嗨,大家好,我是小森( ﹡ˆoˆ﹡ )! 易编橙终身成长社群创始团队嘉宾,橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官、CSDN人工智能领域优质创作者 。 易编橙:一个帮助编程小…

二四、3d人脸构建

一、下载github项目3dmm_cnn-master https://github.com/anhttran/3dmm_cnn.git 一个使用深度神经网络从单个图像进行 3D 人脸建模的项目,端到端代码,可直接根据图像强度进行 3D 形状和纹理估计;使用回归的 3D 面部模型,从检测到的面部特征点估计头部姿势和表情。…

STM32中断学习记录

文章目录 NVICNVIC是什么NVIC寄存器NVIC 结构体NVIC 相关固件库函数 如何定义优先级中断编程外部中断 EXTIEXIT 外部中断/事件控制器EXIT的使用EXTI内部寄存器分析GPIO触发中断例程为什么中断后要清除中断标志位 SysTick的使用SysTick分析 NVIC NVIC是什么 待补充.........NVI…

Docker安装HomeAssistant

检查Docker服务是否正常运行,确保Docker正常运行。 systemctl status docker#输出---------------------- docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Activ…

旗晟智能巡检机器人:开启工业运维的智能化新篇章

在当今快速发展的工业领域,安全、效率和成本控制是企业运营的核心。旗晟科技以创新为驱动,推出了一站式的工业级智能巡检机器人数字化全景运维解决方案,为石油、天然气、化工、电力等高危行业提供了一个全新的运维模式。 一、面对挑战&#x…

人工智能算法工程师(中级)课程3-sklearn机器学习之数据处理与代码详解

大家好,我是微学AI,今天给大家分享一下人工智能算法工程师(中级)课程3-sklearn机器学习之数据处理与代码详解。 Sklearn(Scikit-learn)是一个基于Python的开源机器学习库,它提供了简单有效的数据挖掘和数据分析工具。Sklearn包含了…