牛掰!用Python处理Excel的14个常用操作总结!

Python in Excel的一些使用心得 获得Python in Excel的preview之后, 就在任意的Excel单元格里可以敲=py(来写Python代码了。不过Python in Excel并没有什么专门的文档, 只有一些教程, 比如, 剩下的就是pandasmatplotlibseaborn等lib的文章,和Python in Excel并没有什么关系。所以刚进入Python in Excel时,对这个新的环境会有很多疑问,这篇文章主要是分享一些我的一些理解和使用心得。 阅读详情

自从学了Python后就逼迫用Python来处理Excel,所有操作用Python实现。目的是巩固Python,与增强数据处理能力。

这也是我写这篇文章的初衷。废话不说了,直接进入正题。

数据是网上找到的销售数据,长这样:

20aa2980aa57dea41e14dc8fe075f201.png

一、关联公式:Vlookup

vlookup是excel几乎最常用的公式,一般用于两个表的关联查询等。所以我先把这张表分为两个表。

df1=sale[['订单明细号','单据日期','地区名称', '业务员名称','客户分类', '存货编码', '客户名称', '业务员编码', '存货名称', '订单号',
       '客户编码', '部门名称', '部门编码']]
df2=sale[['订单明细号','存货分类', '税费', '不含税金额', '订单金额', '利润', '单价','数量']]

需求:想知道df1的每一个订单对应的利润是多少。

利润一列存在于df2的表格中,所以想知道df1的每一个订单对应的利润是多少。用excel的话首先确认订单明细号是唯一值,然后在df1新增一列写:=vlookup(a2,df2!a:h,6,0) ,然后往下拉就ok了。(剩下13个我就不写excel啦)

那用python是如何实现的呢?

#查看订单明细号是否重复,结果是没。
df1["订单明细号"].duplicated().value_counts()
df2["订单明细号"].duplicated().value_counts()

df_c=pd.merge(df1,df2,on="订单明细号",how="left")

二、数据透视表

需求:想知道每个地区的业务员分别赚取的利润总和与利润平均数。

pd.pivot_table(sale,index="地区名称",columns="业务员名称",values="利润",aggfunc=[np.sum,np.mean])

三、对比两列差异

因为这表每列数据维度都不一样,比较起来没啥意义,所以我先做了个订单明细号的差异再进行比较。

需求:比较订单明细号与订单明细号2的差异并显示出来。

sale["订单明细号2"]=sale["订单明细号"]

#在订单明细号2里前10个都+1.
sale["订单明细号2"][1:10]=sale["订单明细号2"][1:10]+1

#差异输出
result=sale.loc[sale["订单明细号"].isin(sale["订单明细号2"])==False]

四、去除重复值

需求:去除业务员编码的重复值

sale.drop_duplicates("业务员编码",inplace=True)

五、缺失值处理

先查看销售数据哪几列有缺失值。

#列的行数小于index的行数的说明有缺失值,这里客户名称329<335,说明有缺失值
sale.info()

b515286403f061129f807108ea440471.jpeg

需求:用0填充缺失值或则删除有客户编码缺失值的行。实际上缺失值处理的办法是很复杂的,这里只介绍简单的处理方法,若是数值变量,最常用平均数或中位数或众数处理,比较复杂的可以用随机森林模型根据其他维度去预测结果填充。若是分类变量,根据业务逻辑去填充准确性比较高。比如这里的需求填充客户名称缺失值:就可以根据存货分类出现频率最大的存货所对应的客户名称去填充。

这里我们用简单的处理办法:用0填充缺失值或则删除有客户编码缺失值的行。

#用0填充缺失值
sale["客户名称"]=sale["客户名称"].fillna(0)
#删除有客户编码缺失值的行
sale.dropna(subset=["客户编码"])

六、多条件筛选

需求:想知道业务员张爱,在北京区域卖的商品订单金额大于6000的信息。

sale.loc[(sale["地区名称"]=="北京")&(sale["业务员名称"]=="张爱")&(sale["订单金额"]>5000)]

七、 模糊筛选数据

需求:筛选存货名称含有"三星"或则含有"索尼"的信息。

sale.loc[sale["存货名称"].str.contains("三星|索尼")]

八、分类汇总

需求:北京区域各业务员的利润总额。

sale.groupby(["地区名称","业务员名称"])["利润"].sum()

九、条件计算

需求:存货名称含“三星字眼”并且税费高于1000的订单有几个?这些订单的利润总和和平均利润是多少?(或者最小值,最大值,四分位数,标注差)

sale.loc[sale["存货名称"].str.contains("三星")&(sale["税费"]>=1000)][["订单明细号","利润"]].describe()

38511a46f8a340db16b65d13d16e8558.png

十、删除数据间的空格

需求:删除存货名称两边的空格。

sale["存货名称"].map(lambda s :s.strip(""))

十一、数据分列

e807a925a70b552d3e6fb47f4d400c5c.png

需求:将日期与时间分列。

sale=pd.merge(sale,pd.DataFrame(sale["单据日期"].str.split(" ",expand=True)),how="inner",left_index=True,right_index=True)

十二、异常值替换

首先用describe()函数简单查看一下数据有无异常值。

#可看到销项税有负数,一般不会有这种情况,视它为异常值。
sale.describe()

7bed7650136b3169abdcfc28681ce3ad.jpeg

需求:用0代替异常值。

sale["订单金额"]=sale["订单金额"].replace(min(sale["订单金额"]),0)

十三、分组

需求:根据利润数据分布把地区分组为:"较差","中等","较好","非常好"

首先,当然是查看利润的数据分布呀,这里我们采用四分位数去判断。

sale.groupby("地区名称")["利润"].sum().describe()

c9c3c48548f80d483aa137fcc79e820d.png

根据四分位数把地区总利润为[-9,7091]区间的分组为“较差”,(7091,10952]区间的分组为"中等" (10952,17656]分组为较好,(17656,37556]分组为非常好。

#先建立一个Dataframe
sale_area=pd.DataFrame(sale.groupby("地区名称")["利润"].sum()).reset_index()

#设置bins,和分组名称
bins=[-10,7091,10952,17656,37556]
groups=["较差","中等","较好","非常好"]

#使用cut分组
#sale_area["分组"]=pd.cut(sale_area["利润"],bins,labels=groups)

十四、根据业务逻辑定义标签

需求:销售利润率(即利润/订单金额)大于30%的商品信息并标记它为优质商品,小于5%为一般商品。

sale.loc[(sale["利润"]/sale["订单金额"])>0.3,"label"]="优质商品"
sale.loc[(sale["利润"]/sale["订单金额"])<0.05,"label"]="一般商品"

其实excel常用的操作还有很多,我就列举了14个自己比较常用的,若还想实现哪些操作可以评论一起交流讨论,另外我自身也知道我写python不够精简,惯性使用loc。(其实query会比较精简)。若大家对这几个操作有更好的写法请务必评论告知我,感谢!

最后想说说,我觉得最好不要拿excel和python做对比,去研究哪个好用,其实都是工具,excel作为最为广泛的数据处理工具,垄断这么多年必定在数据处理方便也是相当优秀的,有些操作确实python会比较简单,但也有不少excel操作起来比python简单的。

比如一个很简单的操作:对各列求和并在最下一行显示出来,excel就是对一列总一个sum()函数,然后往左一拉就解决,而python则要定义一个函数(因为python要判断格式,若非数值型数据直接报错。)

总结一下就是:无论用哪个工具,能解决问题就是好数据分析师!


 

推荐阅读:

入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径

干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影

趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!

AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

点阅读原文,看B站50个Python实战视频!
Python项目源码60_Python汇总各单位Excel档领料记录并加总每日领用次数.rar 立即下载

相关推荐

python 对excel操作用法详解

python-对excel操作用法详解读excel1.打开excel文件2.获取行数和列数3.获取整行和整列的值,以列表形式返回4.获取单元格数据5.使用行列索引来获取单元格数据写excel1.创建workbook2.创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格3.向表中添加数据4.保存追加数据 读excel import xlrd 1.打开excel文件 data = xlrd.open_workbook(r"./my.xls") table1 = data.sheets()[0] #通过索引顺序获取 table2 = data.sheet_by_index(

4种Python处理Excel数据的方法!

我们在日常工作中常常见到各种后缀的电子表格,例如最常见的xlsx以及较为常见的csv、xls等格式的表格。同样是电子表格,它们之间有什么区别吗?• xls为Excel早期表格格式。xls格式是Excel2003版本及其以前版本所生成的文件格式。其最大的特点就是:仅有65536行、256列。因此规模过大的数据不可以使用xls格式读写。• xlsx为Excel2007及其之后的表格格式,也是现在Excel表格的主流格式。

qq_46094651的博客 2万+

Python脚本自动化芯片设计?PyAether实战教程带你玩转EDA

本文通过PyAether实战教程,详细介绍了如何利用Python脚本实现芯片设计自动化。内容涵盖环境搭建、核心对象模型解析,并重点演示了原理图自动生成、参数化单元创建及设计验证流程集成,帮助EDA工程师从重复性手动操作中解放,显著提升设计效率与一致性。

e4f5g6h的博客 1316

全网最全Python操作Excel教程

0 Python Excel库对比 我们先来看一下python中能操作Excel的库对比(一共九个库): 1 Python xlrd 读取 操作Excel 1.1 xlrd模块介绍 (1)什么是xlrd模块? python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。 (2)为什么使用xlrd模块? 在UI自动化或者接口自动化中数据维护是一个核心,所以此模块非常实用。 xlrd模块可以用于读取Excel的数据,速度非常快,推荐使用! 官方文档:ht

feng的博客 13万+

【清华大学软院】15-19年推免试题历年整理

整理的题目为清软预推免机试(外校)硕士机考题目。 年代 题目1 题目2 题目3 2019 质因数分解 二叉搜索树 区间DP(折叠字符串) 2018 日期转换 高精度模拟 区间DP(戳气球) 2017 进制素数 被遗漏的数字 DP(收集苹果) 2016 大数运算 DP DFS 2015 进制素数: http://acm.hdu.edu.cn/showproblem.php?pid=1230 2017年题目(这个是找的最准确的题目): 1题见【链接】 2题见【链接】

云端筑梦师 2255

告别‘Duang’的一声:手把手解决RK3588开发板PCIe初始化卡死问题(DTS修改实战)

本文详细介绍了解决RK3588开发板PCIe初始化卡死问题的完整过程,包括问题诊断、DTS文件修改及编译烧写步骤。通过禁用未使用的PCIe硬件资源,有效解决了启动卡死问题,为嵌入式开发者提供了实用的调试方法和经验总结。

weixin_30753873的博客 216

速学!4种Python处理Excel数据的方法!

xlwt模块只能写xls文件,不能写xlsx文件(写xlsx程序不会报错,但最后文件无法直接打开,会报错)。openpyxl模块可实现对excel文件的读、写和修改,只能处理xlsx文件,不能处理xls文件。CSV逗号分隔值文件格式,其以纯文本形式存储表格数据(数字和文本),可以用Excel软件打开。当收到的文件既有xls,又有xlsx时,先转换为统一格式再做统计修改更方便。与xls相比,它可以存储1048576行、16384列数据,存储相同数据,示例1:Python读取Excel文件特定数据。

m0_48891301的博客 1万+

JSSIP实战:5分钟搞定WebRTC电话功能(附完整代码示例)

本文通过JSSIP库实战演示如何在Web应用中快速集成WebRTC电话功能。文章提供了从环境准备、SIP服务器连接到完整代码示例的详细步骤,涵盖用户注册、拨号接听、媒体流处理等核心环节,并针对常见问题给出排查方案,帮助开发者高效实现网页端实时语音通信。

u8v9w0x1y的博客 517

Python 处理 Excel 的14个常用操作详解

在这篇博客中,分享了使用 Python 处理 Excel 数据的各种技巧和方法。首先,学习了如何使用pandas库读取 Excel 文件,将表格数据转换为数据框架,为后续处理打下了基础。接着,介绍了数据筛选与过滤的方法,利用条件筛选功能,轻松地过滤和保留感兴趣的数据。然后,学习了数据排序的操作,通过pandas的排序功能,使数据更具可读性,更容易理解数据的结构和趋势。还分享了数据的批量操作,通过循环和函数,高效地对 Excel 数据进行批量处理,提高了代码的复用性和效率。学习了如何利用pandas。

涛哥聊Python 7468

STM32H7+LAN8720A之ETH与LWIP配置问题(End)

开篇介绍 由于项目中需要使用到STM32H7系列的芯片,且该系列无法移植ST的标准库,只能使用ST的HAL库,通过STM32Cube生成HAL库的基本代码。在项目开发中需要使用到STM32板载的ETH口,在简化的四层模型中充当着数据链路层的角色,我们只需添加PHY并配置好IP,即可实现基本的TCP主从机通信、UDP通信等等。 一、激光雷达3i-T1 由于使用了一款只具有网口通信的单线激光雷达,其具有TCP和UDP方式的通信方式,为了避免进行TCP中的socket报文解析和繁琐的通信握手过程,我们首先将雷达配

weixin_42024702的博客 1万+

Spring Boot日志可视化实战:5分钟搞定Promtail采集与Grafana查询(避坑指南)

本文详细介绍了如何通过Promtail和Grafana实现Spring Boot日志的可视化查询,提供从日志采集到高效查询的全流程实战指南,重点解决部署中的常见问题。内容包括Logback配置、Promtail日志采集、Grafana的LogQL查询技巧及生产环境优化建议,帮助开发者快速定位和解决日志问题。

weixin_42526015的博客 106

Python Excel 操作全面总结

本文介绍了 Python Excel 基础操作,包括安装 Python Excel 库、读取 Excel 文件、写入 Excel 文件和修改 Excel 文件。这些操作是 Python Excel 操作的基础,掌握了这些操作,就可以进一步学习更高级的 Python Excel 操作了。在下一部分中,我们将介绍如何使用 Python Excel 库进行 Excel 数据的批量处理。本部分介绍了如何使用 Python 对多个 Excel 文件进行批量处理,包括读取、写入和修改。

极客代码 6261

运放单电源供电和双电源供电的实际应用案例

文章摘要:本文对比分析了运放单电源与双电源供电的典型应用场景及电路设计要点。单电源供电适用于低成本、小体积设备,如便携音箱(5V供电+中点偏置)、工业4-20mA信号转换(12V供电+电压跟随)和物联网传感器(3.3V低功耗设计);双电源供电则适合高精度要求场景,如Hi-Fi音响(±15V对称输出)、医疗设备(±5V微弱信号放大)和精密仪器(±15V宽动态范围)。文末提供常见运放选型对照表,涵盖LM324、TL082等型号的供电参数与核心特性,为不同应用场景提供选型参考。(149字)

qq_37999850的博客 609

python操作Excel

py笔记

sz1125218970的博客 1万+

11、机器学习中的聚类与隐马尔可夫模型

本文介绍了机器学习中的两种重要方法:聚类算法和隐马尔可夫模型(HMM)。聚类作为无监督学习的代表,适用于发现无标签数据中的结构,常见算法包括K-均值和自组织映射(SOM),并在传感器数据分析等场景中展现应用价值。隐马尔可夫模型则是一种可解释的序列模型,用于从观测数据中推断隐藏状态,广泛应用于语音识别、自然语言处理和生物信息学等领域。文章详细讲解了HMM的核心概念如马尔可夫性质、转移与发射概率,并通过TensorFlow实现了前向算法,展示了其计算观测序列概率的动态规划思想。最后对比了两类方法的应用场景,展望

garlic的博客 179

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【史上最全】11种Python 操作 Excel 文件的详尽指南

Python 提供了多种库和方法来操作 Excel 文件,每种方法都有其独特的优缺点和适用场景。选择合适的库可以提高开发效率和代码质量。pandas:功能强大,支持数据清洗、转换和分析,适用于数据分析和处理任务。openpyxl:专注于.xlsx文件格式,提供细粒度的操作,适用于需要对 Excel 文件进行细粒度操作的场景。xlrd和xlwt:支持.xls文件格式,轻量级,适用于处理.xls文件格式的任务。xlwings:支持.xls和.xlsx。

极客代码 8715

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

用Python玩转Excel的五大功能!

在数据分析和处理的过程中,Excel一直是备受欢迎的工具。然而,手动操作Excel既费时又容易出错。幸运的是,Python可以让你高效且智能地操作Excel文件,极大提升工作效率。那么,如何用Python玩转Excel呢?Python可以为我们提供哪些强大的功能来处理Excel文件,使得我们的数据处理工作更加轻松高效?作为一位多年敲代码的程序员,经常会面对各种数据处理任务。虽然Excel挺强大,但数据量一大,手动处理就有点吃力了。于是,Python就成了我们的好帮手。

朱雀随云记的博客 1885

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

用python操作excel的一些个人小结

1、读取文件(非常实用的format函数),并且创建工作表,工作表下面是sheet,我们的操作都是在sheet上进行的。 workbook = xlrd.open_workbook('./{0}.xls'.format(2014)) booksheet = workbook.sheet_by_index(0) 2、读取行数和列数 booksheet.nrows booksheet.nco...

睿神经的博客 577

用 Python 处理 Excel 的 14 个常用操作!

这也是我写这篇文章的初衷。废话不说了,直接进入正题。vlookup是excel几乎最常用的公式,一般用于两个表的关联查询等。所以我先把这张表分为两个表。需求:想知道df1的每一个订单对应的利润是多少。利润一列存在于df2的表格中,所以想知道df1的每一个订单对应的利润是多少。用excel的话首先确认订单明细号是唯一值,然后在df1新增一列写:=vlookup(a2,df2!a:h,6,0) ,然后往下拉就ok了。(剩下13个我就不写excel啦)那用python是如何实现的呢?

Trb201013的博客 9226

Python——处理Excel的10个常用操作

通过这些技巧和方法,我们能够在 Python 中更灵活、高效地处理和分析 Excel 数据,为数据科学和数据处理工作提供了丰富的工具和思路。无论是初学者还是有经验的开发者,这些技能都将为处理实际工作中的 Excel 数据提供强大的支持。

GLB_0627的博客 7968

必学的20个Excel表格操作Python脚本

自定义样式可以让你的 Excel 文件更加美观。# 创建一个新的 DataFramedata = {# 将 DataFrame 写入 Excel 文件# 设置字体样式# 设置边框样式# 设置居中对齐# 保存 Excel 文件本文介绍了使用 Python 处理 Excel 文件的各种方法,包括读取、写入、筛选、排序、分组、添加新列、更新单元格、删除列、合并多个文件、数据透视表、数据合并、数据清洗、数据类型转换、数据可视化、多页文件操作、条件格式化、自定义样式以及批量处理等。

2401_85903292的博客 2432

Python编程:Excel操作

Python提供了多个强大的库来操作Excel文件,主要包括openpyxl、xlrd/xlwt和pandas。

倔强老吕的博客 1718

Python最详细的Excel操作方式,你值得拥有!

为什么要学会使用Excel 在机器学习模型的建立中,不得不借助于Excel强大的统计分析能力,这个时候就牵涉到了如何将python直接处理得到的数据存入excel表格当中以及获取表格的数据进行分析,简单的说,学会使用Python操作Excel文件后,可以运用到机器学习之中,也可以让平常生活中繁琐的工作自动化处理。 Excel的基本使用 Python处理Excel的包是openpyxl,如果你...

李元静 14万+
上一篇: 我发现凡是给offer的公司,面试时基本不问技术细节,那些问得又多又细的公司,后面就没下文了!...
下一篇: 1885页学习资料。一本在手,python不愁!
菜鸟学Python
博客等级 码龄9年 8062粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值