当前位置: 首页 > news >正文

查找Excel包含关键字的行

情况:数据在xlsx的sheet1中且量比较大,比如几十万行几百列;想查找一个关键字,比如"全网首发"

①知道关键字在哪一列 ②不知道在哪一列,很多列相似又不同,只能遍历所有数据,但做点优化避免浪费时间性能;

Excel实现和python实现;

数据大概这样子,这纯粹是我瞎编的演示数据,商品全称、简称、特点列会造成查找重复:

1.如果知道关键字在哪一行

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

1.1excel实现

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

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

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

函数嵌套大致这样:

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

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

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

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

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

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:
        pass

print(row_list)

①为什么要用try,except?

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

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

相关文章:

  • 【星云 Orbit-F4 开发板】05. NVIC中断分组与配置(重要)
  • Svelte vs Vue:前端框架的深度对比与应用场景分析
  • 23种设计模式之《策略模式(Strategy)》在c#中的应用及理解
  • 2025:人形机器人量产潮与AI硬件终端创业风暴
  • Linux三种网络方式
  • 基于POI的Excel下拉框自动搜索,包括数据验证的单列删除
  • 【一起学Rust 框架篇 Tauri2.0框架】Tauri2.0环境搭建与项目创建
  • 商业秘密维权有哪些成本开支?
  • 《CAFE: Learning to Condense Dataset by Aligning Features》
  • 高效管理日志文件——深入解析日志轮转与Logrotate实践
  • 自动化测试开发
  • 【设计模式精讲】开源实战之剖析Spring框架:结合设计模式自定义SpringIOC
  • 基于fast-whisper模型的语音识别工具的设计与实现
  • 【MongoDB】在Windows11下安装与使用
  • 2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(二级)真题 + 答案
  • FFmpeg-chapter2-C++中的线程
  • 【AVRCP】深入理解蓝牙音频 / 视频远程控制规范:从基础到应用
  • weaviate 安装与测试
  • C# .NET Core HttpClient 和 HttpWebRequest 使用
  • windows服务器更新jar包脚本
  • 福州市网站/网站seo文章该怎么写
  • 毕业设计拼车网站的建设雨实现/做网页设计的软件
  • 龙岗网站建设找深一/外贸找客户有什么网站
  • 广州网站营销优化开发/百度权重等级
  • 如何设计好酒店网站模板/软文推广软文营销
  • 杭州制作网页与网站/bt搜索引擎最好用的