查找Excel包含关键字的行(の几种简单快速方法)

需求:数据在后缀为xlsx的Excel的sheet1中且量比较大,比如几十万行几百列;想查找一个关键字所在的行,比如"全网首发"

情况①知道关键字在哪一列

情况②不确定在哪一列,很多列相似又不同,本文演示遍历所有数据,但做点优化避免浪费时间性能;

关键字可能是一串数字,日志的部分内容,加密的某一段等

Excel实现和python实现;

数据大概这样子,这纯粹是我瞎编的简单演示数据,假设关键字为中文,商品全称、简称、特点列会造成查找重复:

1.知道关键字在哪一列

比如关键字在 商品简称 这一列!

1.1excel实现

①直接用筛选,包含,推荐!

超级表ctrl+T,小数据可以这样,数据多不推荐,就是将表本身的数据变成了插入的表格,超级表的筛选功能貌似更强,但数据一多,超级表会很卡;

③用Excel本身的函数:不推荐,麻烦不好用,比如关键字是  猛火

函数嵌套大致这样:

先在sheet2中,弄一个辅助列(本文是演示,其实可以将辅助列的结果包在函数中),用函数判断,这对锁行、列号和excel的公式功底有一定的要求;

find("查找关键字","哪个单元格")-->找到返回起始位置,没有返回错误;

辅助列中,找商品简称列,有没有包含猛火;可以看到辅助列,3和4就是sheet1中商品简称那一列有;

再叠加if,如果辅助列不是错误,就用index返回sheet1中对应数据,都需要往右边推一列,因为辅助列占了一个位置,或者其他函数,大概就是先这样,再那样,就行啦。

然后定位,错误,删掉,但我们的数据是很大的,而且excel的函数但凡写多点就令人窒息。

④power query、VBA、数据透视表,一般用这些稍微复杂点的方法,那肯定是经常做这些方面的工作,基本懂的都会用,本文主讲临时需求,简单高效干完就擦屁股完事。

1.2python实现

读写文件用pandas库为例

例如,我们知道这个关键字,必然在“商品简称”之中:

import pandas as pd
path = "d:/test.xlsx"
df = pd.read_excel(path)row_list= [] # 存符合条件的行号
for index_num in df.index:data = df.loc[index_num,"商品简称"]if data.find("家用")!=-1:print(data)row_list.append(index_num)
print(row_list)     

 find方法,找到了返回关键字在str中起始位置,找不到返回-1;

别用str.contains方法,因为你会遇到很讨厌的错误!同时避免了正则,运行效率upupup。

2.假如列很多,根本就不知道关键字在哪一列

此时excel就很蛋疼了,感觉应该可以,但是并不想去弄。

python实现:

此时基本上是遍历数据硬来了,可以自写方法,iloc或者loc,根据数据类型从行、列df.index,df.columns遍历都行;

不过推荐使用一个函数iterrows(),返回df的行索引和df每一个行数据,注意是行数据series类型;

row_list= []
for row_index,row_data in df.iterrows():try:for col in df.columns:cell_data = df.loc[row_index,col]#         if str(row_data[col]).find("猛火")!=-1:if str(cell_data).find("猛火")!=-1:row_list.append(row_index)raise ValueError("已找到条件")except:passprint(row_list)

①为什么要用try,except?

因为我们要的数据是整个行,只要其中某一列符合条件,整行都要。但凡哪一列找到了关键字,结果存到list中,直接报个错,避免了往后面的列遍历的无用功,比set去重好;

②注意要str(cell_data),因为时间列这种东西,总会出点小问题;

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

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

相关文章

网络运维学习笔记(DeepSeek优化版)009网工初级(HCIA-Datacom与CCNA-EI)路由理论基础与静态路由

文章目录 路由理论基础核心概念路由表六要素路由选路原则加表规则选路优先级 协议与参数常见协议号路由协议优先级对比 网络架构基础AS(autonomous system,自治系统)路由分类 静态路由(static routing)实验拓扑思科配置示例华为配置示例 典型…

为什么深度学习选择Tensor而非NumPy数组?核心优势深度解析

简短总结: 支持 GPU 加速:Tensor 提供对 GPU 的原生支持,能够有效加速计算,而 NumPy 则通常只能在 CPU 上运行。支持自动求导:深度学习模型的训练依赖于参数的优化,而 Tensor 提供了自动求导功能&#xff…

Python 绘制迷宫游戏,自带最优解路线

1、需要安装pygame 2、上下左右移动,空格实现物体所在位置到终点的路线,会有虚线绘制。 import pygame import random import math# 迷宫单元格类 class Cell:def __init__(self, x, y):self.x xself.y yself.walls {top: True, right: True, botto…

Qt for Android下QMessageBox背景黑色、文字点击闪烁

最近在基于Qt开发安卓应用的时候,在红米平板上默认QMessageBox出现之后,背景黑色,并且点击提示文字会出现闪烁,影响用户体验。 问题分析 1、设置QMessageBox样式,设置背景色、文字颜色,如下所示: QMessageBox {background: white;color: white; } 尝试之后,问题仍存…

基于Springboot博物馆文博资源库系统【附源码】

基于Springboot博物馆文博资源库系统 效果如下: 系统登陆页面 文物信息管理页面 流动申请页面 文物报修页面 个人信息页面 文物保修管理页面 系统主页面 文物类型页面 研究背景 随着信息技术的飞速发展,博物馆文博资源的管理与利用日益受到重视。传统…

eNSP中AR2220、AR201、AR1220、AR2240、AR3260、Router、NE40E、NE5000E、NE9000、CX路由器学习笔记

eNSP中常见华为路由器型号的接口特性详解及横向对比,重点关注接口类型、扩展能力和适用场景: 缩写解释: LPU:Line Processing Unit(线路处理单元) SPU:Service Processing Unit(业务…

【考试大纲】初级信息系统运行管理员考试大纲

目录 引言一、考试要求1、 考试说明2、 考试要求3、 本考试设置的科目包括:二、考试范围考试科目1:信息系统基础知识(初级)考试科目2:信息系统运行管理(应用技术)引言 最新的信息系统运行管理员考试大纲出版于 2018 年 9 月,本考试大纲基于此版本整理。 一、考试要求…

基于单片机的智能扫地机器人

1 电路设计 1.1 电源电路 本电源采用两块LM7805作为稳压电源,一块为控制电路和传感器电路供电,另一块单独为电机供电。分开供电这样做的好处,有利于减小干扰,提高系统稳定性。 LM7805是常用的三端稳压器件,顾名思义0…

传输层协议TCP

TCP全称为 传输控制协议(Transmission Control Protocol),就是要对数据的传输进行一个详细的控制。 TCP协议段格式 源端口:发送方的端口号,用来标识发送端的应用程序或进程。 目标端口:接收方的端口号,用来标识接收端…

ST-LINK端口连接失败,启动GDB server失败的问题处理方法,有效

目录 1. 问题描述2. 解决办法2.1 后台关闭2.2 后台关闭无法找到ST进程或者关闭后未解决 1. 问题描述 报错: Failed to bind to port 61235, error code -1: No error Failure starting SWV server on TCP port: 61235 Failed to bind to port 61234, error code -1…

OpenCV计算摄影学(3)CUDA 图像去噪函数fastNlMeansDenoising()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 使用非局部均值去噪算法(Non-local Means Denoising algorithm)执行图像去噪,该算法来源于 http://www.ipol.…

Windows逆向工程入门之MASM字符处理机制

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 一、MASM字符编码体系深度解析 1. 多层编码支持架构 编码转换关键技术: 2. 字符串存储优化策略 内存优化特征: 二、逆向工程中的字符串特征识别 1. 字符串解…

Linux上用C++和GCC开发程序实现两个不同MySQL实例下单个Schema稳定高效的数据迁移到其它MySQL实例

设计一个在Linux上运行的GCC C程序,同时连接三个不同的MySQL实例,其中两个实例中分别有两个Schema的表结构分别与第三实例中两个Schema个结构完全相同,同时复制两个实例中两个Schema里的所有表的数据到第三个实例中两个Schema里,使…

如何评估所选择的PHP后端框架的性能?

大家在选择PHP后端框架的时候,如果想评估其性能如何,能不能扛得住你的项目?可以根据以下几点进行分析,帮助大家选择到更符合自己心目中的PHP后端框架。 1. 基准测试 基准测试是评估框架性能的基础方法,主要通过模拟高…

P8649 [蓝桥杯 2017 省 B] k 倍区间--前缀和--同余定理【蓝桥杯简单题-必开long long】

P8649 [蓝桥杯 2017 省 B] k 倍区间--前缀和--同余定理 题目 分析代码 还有一件事【老爹音】 题目 分析 首先,看到”连续子序列求和”这一要求时,我们果断选择前缀和解答。 接着就要用到一个非常巧妙的“同余定理”——如果 sum[j] % K sum[i] % K&am…

如何免费使用稳定的deepseek

0、背景: 在AI辅助工作中,除了使用cursor做编程外,使用deepseek R1进行问题分析、数据分析、代码分析效果非常好。现在我经常会去拿行业信息、遇到的问题等去咨询R1,也给了自己不少启示。但是由于官网稳定性很差,很多…

拉链表介绍

拉链表 是处理 缓慢变化维(SCD) 的一种常用方法,特别适用于需要保留历史记录的场景。以下是拉链表的详细说明及实现方法: 1. 什么是拉链表? 拉链表是一种用于记录维度数据历史变化的表结构,通过 开始时间 …

ChatGPT与DeepSeek:AI语言模型的巅峰对决

目录 引言 一、ChatGPT 与 DeepSeek 简介 (一)ChatGPT (二)DeepSeek 二、技术原理剖析 (一)ChatGPT 技术原理 (二)DeepSeek 技术原理 (三)技术原理对比…

【愚公系列】《Python网络爬虫从入门到精通》036-DataFrame日期数据处理

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…

PDF文档中表格以及形状解析

我们在做PDF文档解析时有时需要解析PDF文档中的表格、形状等数据。跟解析文本类似的常见的解决方案也是两种。文档解析跟ocr技术处理。下面我们来看看使用文档解析的方案来做PDF文档中的表格、图形解析(使用pdfium库)。 表格解析: 在pdfium库…