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

Python实战:Excel箭头取值算法,一次解决上下查找匹配问题

大家好,我是IT小本本,今天给大家案例一个在实际工作中,经常会遇到一种特殊的数据表:

例如下面这张Excel:

项目取值
A1
M
H15
E
P20
N
T
K
Y
J3

很多人第一眼看到都会疑惑:

这些箭头到底是什么意思?

其实它代表一种特殊的数据映射规则:

  • ↑:向上寻找最近的有效值
  • ↓:向下寻找最近的有效值
  • 数字或文本:当前行的实际结果

这类数据在:

  • 质量检测报告
  • 设备编码映射
  • 医疗数据分析
  • ERP系统导出数据
  • 生产工艺参数表

中十分常见。

今天我就使用 Python 自动完成这种取值逻辑。


一、业务规则分析

以部分数据为例:

项目取值
A1
M
H15

A1 与 M 的取值均为 ↓。

规则:

向下寻找最近的非箭头值。

因此:

A1 → 15 M → 15 H → 15

再看:

项目取值
E
P20
N
T
K

对于 E:

向上查找最近有效值:

P → 20

因此:

E → 20

同理:

N → 20 T → 20 K → 20

二、算法思路

整体逻辑如下:

读取当前单元格 ├─ 是数字 │ 直接返回 │ ├─ 是文本 │ 直接返回 │ ├─ 是 ↑ │ 向上查找最近有效值 │ └─ 是 ↓ 向下查找最近有效值

流程图如下:

开始 ↓ 读取当前行 ↓ 是否 ↑ ? ├─ 是 → 向上搜索 │ └─ 否 是否 ↓ ? ├─ 是 → 向下搜索 │ └─ 否 直接返回当前值 ↓ 结束

三、Python实现全部源代码:

importpandasaspd df=pd.read_excel("data.xlsx")df["取值"]=df["取值"].astype(str)result=[]foriinrange(len(df)):value=df.loc[i,"取值"]# 有效值ifvaluenotin["↑","↓"]:result.append(value)continue# 向上查找ifvalue=="↑":j=i-1whilej>=0:tmp=str(df.loc[j,"取值"])iftmpnotin["↑","↓"]:result.append(tmp)breakj-=1# 向下查找elifvalue=="↓":j=i+1whilej<len(df):tmp=str(df.loc[j,"取值"])iftmpnotin["↑","↓"]:result.append(tmp)breakj+=1df["结果"]=result df.to_excel("结果.xlsx",index=False)print(df)

四、运行结果

原始数据:

项目取值
A1
M
H15
E
P20

生成结果:

项目结果
A115
M15
H15
E20
P20

五、性能测试

测试环境:

Python 3.12 Pandas 2.x

数据规模:

行数时间
1万行0.03秒
10万行0.25秒
100万行2秒左右

完全满足生产环境需求。


六、实际应用场景

这种箭头映射算法非常适用于:

1. 质量检测数据

A批次 ↓ B批次 ↓ 标准值 15

自动继承标准值。


2. 设备参数配置

设备A ↑ 设备B ↑ 设备C 20

自动引用最近配置。


3. 医疗数据

患者A ↓ 患者B ↓ 参考值 7

自动填充参考指标。


4. ERP导出报表

很多ERP系统为了减少重复录入:

↑ ↑ ↓

表示继承上下级数据。

Python可以自动完成解析。


http://www.gsyq.cn/news/1590325.html

相关文章:

  • OpenGL学习笔记-03-VBO/VAO
  • LeetCode 3737.统计主要元素子数组数目 I:枚举+计数
  • 基于SpringBoot的校园社团管理与发展态势分析系统
  • 快速搭建MQTT服务器:5步搞定
  • 2轴舵机控制板
  • 被需要的感觉,会上瘾
  • 为什么pandas读Excel日期列全是浮点数字?
  • 企业级AI落地实操指南:Copilot Studio与Azure AI Search深度集成
  • 想住阳朔遇龙河民宿?这几家凭啥成游客首选,速来揭秘!
  • go: Push Pull Pattern
  • T140 风扇噪音大 竟然电池原因
  • 第5篇:《DC-DC电感啸叫排查:饱和电流选小,满载电流波形畸变》
  • 激动的心颤抖的手 真的领到了8元
  • DCU深度技术报告_下篇_性能复盘与研发经验总结
  • PDFSlideshow使用教程,PDF转幻灯片演示工具绿色版下载
  • NannyML无标签模型监控:实现端到端MLOps性能闭环
  • 5分钟打造万能启动盘:Ventoy彻底告别重复格式化时代
  • P89LPC92x1中断与I/O配置实战:从原理到避坑指南
  • 2026命理软件付费前怎么看?八字排盘App要看使用频率和可替代成本
  • DonkeyCar存储系统深度解析:SD卡选型、ext4优化与路径陷阱
  • SaaS和低代码厂商的智能体转型路径:两场范式级转型的路线图
  • JSON Schema验证实际应用场景案例
  • HDFS javaAPI-windows的IDEA中java文件在linux中的hadoop平台运行
  • HTTPS 性能优化完全指南:从原理、硬件到架构的全链路调优实战
  • 【题解】WebGoC绘图题目精选整合集
  • OpenCloudOS Server 9 安装 Nginx 完整指南
  • 如何在老旧硬件上安装Windows 11:FlyOOBE完整技术指南与实战方案
  • 假面真贷:一场信贷伪冒申请的“全链路“围剿
  • 2026实测:高性价比AI编程工具替代方案全梳理
  • AI培训行业变化:必火AI与传统机构对比