Python实现Excel箭头取值算法的完整教学

 更新时间:2026年06月26日 08:45:35   作者:IT小本本  
本文详细介绍了如何使用Python处理包含特殊映射规则的数据表,通过解析箭头符号实现向上或向下查找最近有效值的逻辑,文章不仅提供了完整的Python代码实现,还进行了性能测试,适用于质量检测、设备参数配置、医疗数据和ERP系统等多种实际应用场景

大家好,我是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

因此:P → 20

同理:

N → 20
T → 20
K → 20

二、算法思路

整体逻辑如下:

读取当前单元格
├─ 是数字
│      直接返回

├─ 是文本
│      直接返回

├─ 是 ↑
│      向上查找最近有效值

└─ 是 ↓
       向下查找最近有效值

流程图如下:

开始
 ↓
读取当前行
 ↓是否 ↑ ?

 ├─ 是 → 向上搜索
 │
 └─ 否
是否 ↓ ?
 ├─ 是 → 向下搜索
 │
 └─ 否
直接返回当前值
 ↓
结束

三、Python实现全部源代码

import pandas as pd
df = pd.read_excel("data.xlsx")
df["取值"] = df["取值"].astype(str)
result = []
for i in range(len(df)):
    value = df.loc[i, "取值"]
    # 有效值
    if value not in ["↑", "↓"]:
        result.append(value)
        continue
    # 向上查找
    if value == "↑":
        j = i - 1
        while j >= 0:
            tmp = str(df.loc[j, "取值"])
            if tmp not in ["↑", "↓"]:
                result.append(tmp)
                break
            j -= 1
    # 向下查找
    elif value == "↓":
        j = i + 1
        while j < len(df):
            tmp = str(df.loc[j, "取值"])
            if tmp not in ["↑", "↓"]:
                result.append(tmp)
                break
            j += 1
df["结果"] = 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可以自动完成解析。

以上就是Python实现Excel箭头取值算法的完整教学的详细内容,更多关于Python Excel箭头取值算法的资料请关注脚本之家其它相关文章!

相关文章

  • 教你用Python寻找重复文件并删除的脚本写法

    教你用Python寻找重复文件并删除的脚本写法

    这篇文章主要介绍了如何用Python寻找重复文件并删除,该脚本主要包括diskwalk,chechsum,find_dupes,delete模块,其中diskwalk模块是遍历文件的,给定路径,遍历输出该路径下的所有文件,需要的朋友可以参考下
    2022-01-01
  • 使用tensorflow将图片灰度化以及遇到的坑解决

    使用tensorflow将图片灰度化以及遇到的坑解决

    这篇文章主要介绍了使用tensorflow将图片灰度化以及遇到的坑解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python 将字符串转换为列表的7种方法汇总

    Python 将字符串转换为列表的7种方法汇总

    这篇文章主要介绍了Python 将字符串转换为列表的7种方法汇总,在本文中,我们将尝试将给定的字符串转换为列表,其中根据用户的选择,遇到空格或任何其他特殊字符,为此,我们在string中使用split()方法,需要的朋友可以参考下
    2023-11-11
  • 如何提高python 中for循环的效率

    如何提高python 中for循环的效率

    这篇文章主要介绍了如何提高python 中for循环的效率,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python检查字符串是否是正确ISBN的方法

    python检查字符串是否是正确ISBN的方法

    这篇文章主要介绍了python检查字符串是否是正确ISBN的方法,涉及Python针对字符串的相关操作技巧,需要的朋友可以参考下
    2015-07-07
  • 详解一种用django_cache实现分布式锁的方式

    详解一种用django_cache实现分布式锁的方式

    这篇文章主要介绍了详解一种用django_cache实现分布式锁的方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Python爬虫教程使用Scrapy框架爬取小说代码示例

    Python爬虫教程使用Scrapy框架爬取小说代码示例

    相信学Python爬虫的小伙伴听说过Scrapy框架,也用过Scrapy框架,今天我们边学习Scrapy框架边爬取整部小说,让大家在不知不觉的学习过程中使用Scrapy框架完成整部小说的爬取
    2021-09-09
  • Python的gevent框架的入门教程

    Python的gevent框架的入门教程

    这篇文章主要介绍了Python的gevent框架的入门教程,示例代码基于Python2.x版本,需要的朋友可以参考下
    2015-04-04
  • Python使用sftp实现上传和下载功能

    Python使用sftp实现上传和下载功能

    这篇文章主要为大家详细介绍了Python使用sftp实现上传和下载功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • python 内置模块详解

    python 内置模块详解

    模块是一个保存了Python代码的文件。模块能定义函数,类和变量。模块里也能包含可执行的代码,今天我们就来详细探讨下python内置的一些常用模块
    2019-01-01

最新评论