表格过滤
表格过滤
描述:对获取到的DataFrame数据集进行过滤操作,并将过滤后的数据返回

注意:
- 过滤处理的对象类型为DataFrame,支持单个或多个条件过滤
- 数据过滤后的返回值依旧为DataFrame类型数据集
属性说明
通用属性
- 前置延时 - 组件功能执行之前等待的时间,单位为“毫秒”
- 后置延时 - 组件功能执行后等待的时间,单位为“毫秒”
- 备注- 组件备注说明,以便于理解和快速定位
目标属性
- 表格 - 传入待过滤处理的表格数据,输入类型为Dataframe
输入属性
- 条件直接关系 - 设置筛选条件之间的逻辑关系,它有and和or两个按钮:and为逻辑与,也就是所有条件都符合才匹配;or为逻辑或,所有条件中只要有一条匹配就满足
返回值
- 输出到变量 - 表格过滤后得到的数据,其类型依旧为Dataframe,可传入变量中进行保存,也可以直接传入其他组件中使用
使用示例
场景
以“费用报销审核”场景为例,比如:公司每个月都会收到员工提交的费用报销申请,这些申请包含各种类型的费用,如差旅费、餐饮费、办公用品费等。财务部门需要审核这些申请,确保它们符合公司的报销政策,然后进行支付。
通过自动化筛选出超过公司规定的报销限额的申请,标记这些申请以供进一步人工审核。
前置条件
准备一个“报销单.xlsx”表格,表格内容如下:

步骤
1、点击“+”新建一个子流程--->拖动开始节点,松手后在弹出的组件弹窗中搜索【读取Excel】组件,点击添加--->点击“文件路径”的图标,选择桌面上的“报销单.xlsx”表格--->其他参数保持默认值

2、添加【表格过滤】组件,将【读取Excel】的“返回值”连接到“表格”处--->条件直接关系选择“and”--->点击“添加条件”按钮添加两个条件--->条件1输入:'报销类型'=='餐饮费';条件2输入:'报销金额'>500--->在“备注”处输入说明:过滤餐饮费超过500元的申请

3、添加【Dataframe遍历】组件,将【表格过滤】的“返回值”连接到“Dataframe”处

4、添加【自加】组件,并与【Dataframe遍历】的“过程”节点相连--->在“x”处输入:row['申请编号']--->点击左侧流程参数的“+”号新增一个参数变量pv_1,将【自加】组件的“返回值”连接到变量pv_1

5、添加【单元格写入】组件,点击“文件”处的图标选择桌面上的“报销单.xlsx”表格--->“内容”输入:'需要审核'--->“单元格”输入:f"G{pv_1}",其他属性保持默认

6、参照上面的步骤依次添加【表格过滤】、【Dataframe遍历】、【自加】、【单元格写入】组件--->将【表格过滤】的条件改为条件1:'报销类型'=='差旅费',条件2:'报销金额'>1000--->将【读取Excel】的“返回值”连接到【表格过滤】的“表格”处--->将【自加】组件的返回值连接新增流程参数pv_2--->将步骤3中的【Dataframe遍历】组件的业务节点连接到第二个【表格过滤】的业务节点

7、添加【创建Excel】组件,并与步骤6中的【Dataframe遍历】组件业务节点相连--->点击“路径”处的图标选择桌面作为保存路径--->在“文件名”处输入:'处理后的报销申请.xlsx'--->“是否覆盖”选择:是

8、添加【复制文件】组件,点击“源文件”处的图标,选择桌面上的“报销单.xlsx”表格--->将【创建Excel】的“返回值”连接到“目标文件”处

9、添加【发送邮件】组件,“发件人”选择自己的邮箱(具体设置方法见【发送邮件】组件文档)--->“收件人”处直接输入自己的邮箱,如:'chenwenxiu@i-search.com.cn'--->“标题”处随意输入一些文字,如:'处理后的报销申请'--->将【创建Excel】的“返回值”连接到“附件”处

输出结果
运行流程,系统将自动读取“报销单”表格,筛选出“餐饮费超过500元以及差旅费超过1000元的申请”,并在备注列标记“需要审核”;并将此表复制到一张新表“处理后的报销申请”,最后作为附件发送给审核人员(即自己)。

组件条件关系和判断方法逐一演示
筛选表格如下:

情况1:
示例:表格过滤组件的输入属性窗口,点击 '+' 添加过滤条件---->设置条件直接关系与过滤条件:''产品类型''值等于'A1'---->运行流程

输出结果:运行流程后---->系统自动读取excel数据,以设置条件过滤数据,并输出到控制台

情况2:
示例:表格过滤组件的输入属性窗口,设置过滤条件:''产品名称''值等于'name0002'---->运行流程

输出结果:运行流程后---->系统自动读取excel数据,以设置条件过滤数据,并输出到控制台

情况3:
示例:表格过滤组件的输入属性窗口,''条件直接关系''设置为and---->设置过滤条件:''产品类型''值等于'A1'---->设置过滤条件:''产品名称''值等于'name0002'---->运行流程

输出结果:运行流程后---->系统自动读取excel数据,以设置条件过滤数据,并输出到控制台

情况4:
示例:表格过滤组件的输入属性窗口,''条件直接关系''设置为 or---->设置过滤条件:''产品类型''值等于'A1'---->设置过滤条件:''产品名称''值等于'name0002'---->运行流程

输出结果:运行流程后---->系统自动读取excel数据,以设置条件过滤数据,并输出到控制台

情况5:
示例:表格过滤组件的输入属性窗口,''条件直接关系''的两个输入参数也支持传入变量操作---->例如下图流程添加变量lv_1且设置默认值为'A1'

表格过滤组件的''条件直接关系''设置为'产品类型'等于'lv_1'---->运行流程

输出结果:运行流程后---->系统自动读取excel数据,以设置条件过滤数据,并输出到控制台

情况6:
示例:条件设置栏中间的下拉框即为判断方法,默认为'==',也就是等于,匹配指定列的内容中等于指定值的数据,参照以上示例;选择其他判断方法如下(输出结果自行检查) 条件设置栏中间的下拉框选择'>': 匹配指定列的内容中大于指定值的数据,如匹配'产品风险级别'列中内容大于5的数据

条件设置栏中间的下拉框选择'>=': 匹配指定列的内容中大于或等于指定值的数据,如匹配'产品风险等级'列中内容大于等于5的数据

条件设置栏中间的下拉框选择'<': 匹配指定列的内容中小于指定值的数据,如匹配'视频保存时长'列中内容小于6的数据

条件设置栏中间的下拉框选择'<=': 匹配指定列的内容中小于或等于指定值的数据,如匹配'视频保存时长'列中内容小于或等于6的数据

条件设置栏中间的下拉框选择'!=': 匹配指定列的内容中不等于指定值的数据,如匹配'产品名称'列中内容不为'name0002'的数据

情况7:
示例:条件设置栏中间的下拉框选择'startswith':匹配指定列的内容中以某个字符开头的数据---->匹配'产品代码'列中开头为'zs'的数据---->运行流程

输出结果:运行流程后---->系统自动读取excel数据,以设置条件过滤数据,并输出到控制台

如果筛选的列中有空值,按照以上条件,流程运行后则会抛出异常,需要进行过滤空值

情况8:
示例:'notna'- 匹配指定列的内容中不为空的数据---->匹配'产品代码'列中内容不为空的记录---->运行流程

输出结果:运行流程后---->系统自动读取excel数据,以设置条件过滤数据,并输出到控制台

也可应用于类似上例中,去除筛选列中的空值,避免抛出异常

输出结果:运行流程后---->系统自动读取excel数据,以设置条件过滤数据,并输出到控制台

情况9:
示例:'endswith'- 匹配指定列的内容中以某个字符结束的数据----> '产品代码'列中为'002'结尾的记录---->运行流程

输出结果:运行流程,系统自动读取excel数据,以设置条件过滤数据,并输出过滤后的数据

同样,若是筛选的列中有空值,则会抛出异常,需要进行过滤空值
情况10:
示例:'match'- 比对指定列的内容中与正则表达式匹配的数据,注意筛选的列中不能有空值,否则会抛出异常 ----> 例如'产品代码'列中匹配符合'zs.*'
正则表达式的数据---->运行流程

输出结果:运行流程后---->系统自动读取excel数据,以设置条件过滤数据,并输出到控制台

情况11:
示例:'isnull'- 匹配指定列的内容中为空的数据---->匹配'产品代码'列中内容为空的记录---->运行流程

输出结果:运行流程后---->系统自动读取excel数据,以设置条件过滤数据,并输出过滤后的数据

情况12:
示例:'isin'- 匹配指定列的内容中包含指定字符的数据,注意指定字符的内容需填写完全一致,写入列表输入---->匹配'产品类型'列中内容为'A1'的记录---->运行流程

输出结果:运行流程后---->系统自动读取excel数据,以设置条件过滤数据,并输出到控制台

指定字符不能直接输入,否则会抛出异常,提示需要传入一个list-like的对象数据

输出结果:运行流程后---->抛出异常
