一、前言

前几天在Python交流群中遇到一个问了一个使用Python实现Excel中找出第一个及最后一个不为零的数,它们各自在第几列的问题,觉得还挺有用的,这里拿出来跟大家一起分享下。

数据截图如下所示:

二、实现过程

这里大佬给了一个方法,使用Pandas实现,如下所示:

# code by:小小明大佬
import pandas as pd
df = pd.read_excel('Data.xlsx', header=1, usecols="B:K")
result = []
for row in df.itertuples():code = row.Indexrow = pd.Series(row[1:])row.index += 1  # 默认索引从0开始,但是他要求编号从1开始row = row[row != 0]# print(row)s_num, s_i, e_num, e_i = [pd.NA] * 4if row.shape[0] > 0:  # row.shape[0],row是过滤后的数据,row.shape[0]非零数据的长度,等价于len(row)s_num, s_i, e_num, e_i = row.iat[0], row.index[0], row.iat[-1], row.index[-1]result.append([code, s_num, s_i, e_num, e_i])
result = pd.DataFrame(result, columns=["产品编码", "起始数", "起始位置", "结束数", "结束位置"])
print(result)

运行之后,可以得到预期的结果:

顺利地解决了粉丝的问题。

这里再补充下,df.itertuples()生成一个namedtuples类型数据,name默认名为Pandas,可以在参数中指定。

df.iterrows()相比,df.itertuples()运行速度会更快一些,推荐在数据量庞大的情况下优先使用。

群里卧虎藏龙的,后来也有大佬给了一个Excel实现的方式,如下所示:

这个Excel的功夫算是到家了,公式确实写的长。

你以为这就完了?NO!

后来明佬还基于WPS宏代码实现了这个需求,实在是太强了!我对宏代码实现不了解,这里发出来给大家观摩了,感兴趣的小伙伴自行学习下,如下图所示。

盘点一个使用Python实现Excel中找出第一个及最后一个不为零的数,它们各自在第几列相关推荐

  1. 单词迷阵游戏就是从一个10x10的字母矩阵中找出目标单词,查找方向可以从左往右、从右往左、从上往下或者从下往上。例如下面的迷阵中包含quot等单词。

    单词迷阵游戏就是从一个10x10的字母矩阵中找出目标单词,查找方向可以从左往右.从右往左.从上往下或者从下往上.例如下面的迷阵中包含quot等单词. rmhlzxceuq bxmichelle mnn ...

  2. 如何Excel中找出不同两列的相同值

    如何在EXCEL里面找出A列和B列中相同的数据,并显示在C列?   20 B列包含A列数据,如何让相同的数据在C列对应显示? 满意答案 笨鸟 17级 2009-11-30 设数据如图: 将公式 =IF ...

  3. 在字符串中找出第一个只出现一次的字符,Python实现

    要求: 1. 不能依赖库函数直接实现此功能,需使用基础的数据结构实现 2. 时间复杂度 O(n) 思路: 1. 用字典存储每个字符在字符串中出现的次数 2. 列表是有序的,用来存储字符的出现先后 3. ...

  4. EXCEL 中找出两个sheet相同列

    在工作中我们可能经常会使用到,在sheet1->A 列数据同时在sheet2->A列出现.那么我们用EXCEL中怎么找出他们呢? 在EXCEL中可以采用VLOOKUP函数来完成.具体操作如 ...

  5. 用 Python 在 Excel 中画出蒙娜丽莎

    文 | 麦麦麦造 出处 | 掘金 之前看到过很多头条,说哪国某人坚持了多少年自学使用 excel 画画,效果十分惊艳.对于他们的耐心我十分敬佩.但是作为一个程序员,自然也得挑战一下自己.这种需求,我们 ...

  6. Python 数据结构与算法——从某个列表中找出两个彼此最接近但不相等的数

    先排序,再...(毕竟归并排序的时间复杂度仅为 O(nlogn)O(n\log n))排序的幽灵.排序和查找真是一对好基友. 来看基础版本: from random import randrange ...

  7. Excel中找出两列中相同的值

    第一步:选中要对比的H列和J列 第二步:点击"开始",然后点击"条件格式"并选择"突出显示单元格规则" 第三步: 选中"重复值&q ...

  8. 在字符串中找出第一个只出现一次的字符

    如输入一个字符串char* s ="abcdacfgb",最终输出'd'. 方法一: 可以创建两个指针i,j,定义计数变量int count = 0: 起点均为s[0],j先行, ...

  9. python求近似值_python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配...

    已知一个元素,在一个list中找出相似的元素 使用场景: 已知一个其它来源的字符串, 它有可能是不完全与我数据库中相应的字符串匹配的,因此,我需要将其转为适合我数据库中的字符串 使用场景太绕了, 直接 ...

最新文章

  1. 浅谈WebKit之Port
  2. Webpack构建多页应用心得体会
  3. 直接销毁_战机报废,发动机怎么处理?美国直接销毁,中国改造成扫雪神器
  4. C语言试题十三之求出1到100之内能被7或者11整除,但不能同时被7和11整除的所有整书,并将他们放在a所指的数组中,通过n返回这些数的个数。
  5. 使用scp命令传输文件
  6. python函数格式化_Python通过format函数格式化显示值
  7. c语言如何将一个二维数组全为零_从零开始如何用python处理数据
  8. Amazon 首席科学家李沐亲授「深度学习」,2019 AI ProCon震撼来袭!(日程出炉)...
  9. master节点重置后添加node报错_土豆SUPER通过Node-Red接入HASS和Homekit
  10. python 工程 ——文件、包、__init__及导入方法
  11. [Python] 字典 vars()函数:以字典类型提取对象的属性和属性值
  12. 转: 从0到1的电商架构应该怎么做?
  13. MFC实现虚拟桌面(桌面切换)
  14. PPT 宏 macro图片crop
  15. php调用itchat,itchat接口使用示例
  16. 计算机网络技能大赛感受,技能大赛心得体会
  17. 手机无线网络为啥无法连接服务器,手机wifi打不开及手机WiFi连接上但不能上网,怎么办?...
  18. 崔希凡-javaWeb-笔记day07-day09(2016年7月26日23:17:27)
  19. jflash烧录教程_Jlink flash 烧录HEX 程序
  20. 如何在word、pdf、ppt中导入字体

热门文章

  1. 《仙剑奇侠传柔情版》Java的简单实现(二)
  2. 写给即将入职的你-软件工程之需求开发流程
  3. redis之二十八 -- Redis实战:Redis 主从同步
  4. 【C语言】操作符总结(一)
  5. matlab 函数帮助,MATLAB软件Linprog函数帮助.pdf
  6. linux内核 邻居子系统
  7. 在万网注册的域名如何设置腾讯企业邮箱
  8. 计算机术语400个,汇总|史上最全地理信息系统名词(400个)解释大全(三)完...
  9. windows编译linux内核
  10. 【Visual C++】游戏开发笔记三十一 回归季:游戏开发资料整理打包下载专栏行文思路整理