云计算百科
云计算领域专业知识百科平台

影刀RPA实操指南:二维列表操作详解——行列转换与按列取值

影刀RPA实操指南:二维列表操作详解——行列转换与按列取值

Excel读出来的数据、数据库查回来的数据、接口拼好的数据,在影刀RPA里全都是同一种形态——二维列表。可新手处理二维列表时最容易犯两类错:想拿某一列却只会写循环一个个抠,效率低还容易错位;想做行列转换(把表竖着变横着)直接没头绪,最后手工在Excel里复制粘贴转置。

这篇影刀RPA实操指南把二维列表的核心操作一次讲全:什么是二维列表、怎么按列取值、怎么做行列转换、怎么筛选排序去重。所有指令都是影刀RPA列表扩展指令集里的现成货,拖出来配参数就能用。我做电商数据采集两年,日常的对账表、比价表、日报全靠这套操作撑着。

认识二维列表:表格在程序世界里的样子

二维列表就是"列表里面套列表"。外层列表的每一项是一行,行里的每一项是一个单元格,和Excel的行列完全对应:

在这里插入图片描述

[["商品", "价格", "销量"], ← 第0行(表头)
["商品A", "99.9", "1200"], ← 第1行
["商品B", "59.0", "340"]] ← 第2行

影刀RPA里这些指令的输出都是二维列表:【读取Excel区域】读一个区域、【数据库查询】查一张表、【获取表格】抓网页表格、CSV文件读取。也就是说,学会操作二维列表,等于打通了Excel、数据库、网页三边的通用数据处理能力。

先给刚装影刀RPA的朋友一个校验习惯:拿到任何二维列表变量,先接一个【打印日志】打出来,日志面板里看一眼行数和列数对不对,再往下做处理。行数不对说明上游采集或查询有问题,早发现早排查。

按列取值:获取二维列表指定列指令详解

想从商品表里只拿出"价格"这一列,别写循环,影刀RPA有现成指令。指令面板搜【获取二维列表指定列】,配置三个地方:

  • 列表:选你的二维列表变量
  • 列序号:要取的列,序号从0开始,0代表第一列;多列用英文逗号分割,比如0,2,3
  • 获取结果:保存到新变量
  • 在这里插入图片描述
  • 返回值有个规则要记牢:取一列时返回一维列表(一串值),取多列时返回二维列表(还是一张表)。官方示例里,变量variable=[[1,2,3],[3,4,5],[5,6,7]],取第0,2列,结果保存到result_list,打印出来是[[1,3],[3,5],[5,7]]。

    这个"取一列返回一维列表"的规则很实用:拿到一列价格后可以直接交给【获取列表平均值】或【获取列表最值】算均价和最高最低价,取值和统计两步无缝衔接。我就靠这两步做每日价格监控,均价波动超过阈值就触发飞书告警。

    行列转换:三条路,按场景选

    把表竖着变横着(或反过来),影刀RPA里有三条路,我按使用频率排序:

    第一条:Excel粘贴转置,适合Excel之间的搬运。【拷贝Excel内容】加【粘贴Excel内容】组合,粘贴时把"转置"选项勾上——官方配置说明里写得很直白:转置,将所复制数据的列更改为行。操作路径:先【打开/新建Excel】拿到表格对象,【拷贝Excel内容】框选源区域,【粘贴Excel内容】指定目标单元格行列号(行号从1开始,支持-1表示倒数第一行),选择性粘贴里勾转置。这个方案不用碰代码,小表快用快走。

    **第二条:Python一行zip,适合流程中间环节。**在Python节点里做转换,输出说明和注释如下:

    # 输入:rows 为二维列表,例如 [["商品","价格"],["A","99.9"],["B","59.0"]]
    # 输出:transposed 转置后的二维列表,例如 [["商品","A","B"],["价格","99.9","59.0"]]
    transposed = [list(row) for row in zip(*rows)] # zip(*表) 就是按列重组成行
    ![在这里插入图片描述](https://i–blog.csdnimg.cn/direct/a9163bde6a294669818a04b67ea32f91.png#pic_center)

    zip(*rows)这个写法第一次看会懵,记住效果就行:行变列、列变行。我建议转完打印一下核对形状,尤其当各行长度不一致时(尾部有空单元格),zip会按最短的行截断,这种情况先用【多维列表转一维列表】之类的指令把数据规整了再转。

    **第三条:读区域时直接转置。**部分读取类指令的配置里有transpose参数,是否选择转置默认为False,把它改成True,读出来的二维列表直接就是转置后的形态,连转换步骤都省了。

    三条路怎么选:只在Excel间搬运用粘贴转置;数据还要继续清洗、写库、推送的,用Python转置,让数据全程保持二维列表形态流动。

    筛选、排序、去重:按列处理三件套

    拿到二维列表后的常规清洗,影刀RPA的列表扩展指令集基本全覆盖,三个最常用的:

    指令干什么关键参数
    【筛选二维列表】 按某列条件保留/删除行 列索引、筛选操作、筛选条件
    【二维列表排序】 按某一列字段给行排序 关键列索引,支持负数
    【二维列表按列去重】 某列值重复的行只留一条 去重依据的列

    【筛选二维列表】官方例子很典型:一张四列的用户表,对列索引1(第二列年龄)筛选条件"大于18",剩下的行就全是成年用户,筛选操作包括大于、小于、包含、不包含、等于、不等于这些常规判断。我做拼多多商品表清洗固定两道:先筛价格大于0的行,再按销量列【二维列表排序】降序,出来的表直接能看。
    在这里插入图片描述

    【二维列表添加列】用来给表补字段:采集到的原始表里加一列"店铺名"或"采集日期",整列赋同一个值,比循环逐行append省事。处理完的表走【数据库批量插入数据】——注意这个指令只接受二维列表——或【写入区域】写回Excel,形成完整闭环。

    易错点:二维列表处理的四个高频坑

    这几个坑我都真实踩过,特别提醒:

  • 列序号从0开始:第一列是0不是1。你眼睛里看到的"第2列",代码里是1。列索引差一位,数据整体错位,这是二维列表第一大事故来源
  • 负数索引是双刃剑:排序和筛选的列索引支持负数,-1表示最后一列,列数固定时很好用;但列数会变的表千万别用,列一少负数索引就指向别的列了
  • 读取指令的返回类型要分清:官方文档标注过,【读取Excel内容】读单元格是字符串、读行读列是一维列表、读区域和已使用区域才是二维列表。想拿二维列表却配了读行,后面所有按列操作全报错
  • 筛选是生成新列表:【筛选二维列表】的结果保存到新变量,原列表不变。忘了接输出变量、以为原列表被筛过了,后面逻辑全乱
  • 排查错位问题的万能方法:断点打在写入指令前,变量面板里把二维列表展开,第一行第一列、最后一行最后一列各看一眼,和Excel原表对一下。三十秒的事,能省一晚上排查。

    融入完整流程:从采集到落库的二维列表之旅

    把这套操作放进真实项目看看位置。一个电商比价机器人的数据段:网页自动化部分用【获取相似元素列表】抓商品列表页,ForEach循环逐项提取字段拼行,得到原始二维列表;数据段先【二维列表按列去重】去掉重复商品,再【筛选二维列表】清洗异常价格,【二维列表添加列】补上采集日期,最后【写入区域】进Excel日报、同时【数据库批量插入数据】进库;联动段用【获取列表平均值】算品类均
    在这里插入图片描述
    价,写进飞书消息推送。

    流程控制层面两个建议:ForEach循环体里包Try-Catch,单行数据出错跳过这行继续跑,别让一行脏数据废掉整批;循环外加判断,列表为空时直接结束并通知,避免空跑半小时。

    工程化与速查:让二维列表操作可复用

    二维列表的处理逻辑(去重、清洗、加列、落库)非常适合封装成子流程,输入原始二维列表、输出处理结果,主流程里谁的数据进来都走同一套清洗标准。配合命名规范给变量起清楚的名字,比如goods_table、price_column,比t1、t2这种在调试变量面板里友好一万倍——变量面板是按名字展示的,名字烂排查就痛苦。

    至于鼠标键盘图像那类前台操作,在数据类流程里占比很低,只在网页无接口、无表格结构时用图像识别兜底,这里不展开。学有余力可以研究Pandas,比循环快十倍的表处理,但先把本文这套指令用熟,它们够覆盖八成日常需求。

    二维列表操作易错速查

    现象/报错根因修复方法
    取到的列数据错位 列序号从1开始数了 序号从0开始,0是第一列
    按列操作报类型错误 读取时选了行/单元格模式 用读区域或已使用区域,输出二维列表
    转置后行数变少 各行长度不齐,zip截断 先规整补齐空值再转置
    筛选后数据没变化 结果存进了新变量没引用 把输出变量接进后续流程
    数据库批量插入失败 传入的不是二维列表 检查数据形态,一维列表先包装成二维

    学习资源与延伸阅读

    在这里插入图片描述

    官方列表扩展指令集的文档值得整个翻一遍:获取二维列表指定列、筛选二维列表、二维列表排序、二维列表分组、二维列表添加列、二维列表按列去重、多维列表转一维列表,每一篇都带可直接运行的示例,比任何教程都权威。"数据表格可以存储多少数据"这类FAQ也在官方文档里,大数据量场景先看限制再设计。

    我把比价机器人的完整流程源码——从相似元素采集到二维列表清洗落库——放在代码仓库 home.linyan.cloud,可以直接参考改造,把采集目标和列结构换成你自己的业务就能跑。

    #影刀RPA #RPA自动化 #二维列表 #数据处理 #Excel

    作者:林焱
    在这里插入图片描述

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 影刀RPA实操指南:二维列表操作详解——行列转换与按列取值
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!