练习七
本次练习目标是从交易数据中标记中可能存在欺诈嫌疑的交易。可能存在欺诈嫌疑的交易需要满足三个条件,分别是:
- 交易金额(Value)超过1000。
- 取消(Cancelled)状态为否(N)。
- 账户类型(Account Type)不是白金账户(Platinum)。白金账户在识别交易欺诈有另外一套规则,所以这里我们需要将其排除。
交易数据文件共有四个,分别为:
- Transaction Path.csv
- 用于记录交易路径信息,下载此文件。
- 内容如下图所示:
- Transaction Detail.csv
- 交易的明细信息,记录每次交易的明细信息。下载此文件。
- 文件内容如下图所示:
- Account Information.csv
- 账户信息,记录账户ID,账户持有人,账户类型,账户余额以及结算日期等信息,下载此文件 。
- 文件内容如下图所示:
- Account Holders.csv
- 账户持有人信息,包含持有人名称、出生日期、联系号码,联系地址等信息,下载此文件 。
- 文件内容如下图所示:
需求
四个文件,和交易相关的文件有两个,分别是Transaction Path.csv和Transaction Detail.csv;和账户相关文件也有两个,分别是:Account Information.csv和Account Holders.csv。在处理时我们可以首先处理交易信息,再处理账户信息,最后通过联接节点将这两种类型的数据联接起来。
处理交易信息
- 将Transaction Path.csv文件内容加载到BaskAdapt中。
- 修改样本数据为10000行,使得我们在操作时可以看到所有数据。
- 将列Account_To和Account_From两列名修改为Account To和Account From。
- 将Transaction Detail.csv文件内容加载到BaskAdapt中。
- 修改样本数据为10000行,使得我们在操作时可以看到所有数据。
- 将Cancelled?列中值为Y的数据过滤掉,只保留值为N的数据。
- 删除Cancelled?列。
- 添加一个联接节点。
- 因为Transaction Path.csv文件和Transaction Detail.csv文件都有Transaction ID字段,所以采用Transaction ID字段将它们联接起来,联接方式为Inner。
- 在联接节点后添加一清理节点。
- 移除Transaction ID_1列。
- 将Value列,也就是交易金额列改为整数类型。
- 针对Value列使用值范围筛选器,只保留Value列中大于等于1000的数据。
处理账户信息
- 将Account Information.csv文件内容加载到BaskAdapt中。
- 添加一清理节点。
- 该文件中Account Holder ID列存在一个账号有多个持有人的情况,多个持有人ID之间用逗号分隔,所以我们需要将它们进行拆分。
- Account Holder ID列中多个持有人ID除用逗号分隔外,中间还有空格,所以对于拆分出来的Account Holder ID列需要使用Trim函数去除前后空格。
- 拆分Account Holder ID列后,原Account Holder ID列可以删除。
- 因为每个账号存在多个持有人,在拆分出Account Holder ID列后,每个持有人ID都成为一列,接下来需要将拆分出来的Account Holder ID列转换为行。
- 添加一个转置节点,采用列转行,对拆分出来的Account Holder ID列进行转置。
- 移除转置1名称。
- 将转置1的值列名改为Account Holder ID。
- 去除所有Account Holder ID列中值为null的行,以确保所有的行中Account Holder ID列值都不为空。
- 将Account Holder ID列数据类型改为整数。
- 将Account Holders.csv文件内容加载取BaskAdapt中。
- 添加一清理节点
- 修改Contract Number列的值,在其值前添加0,使得所有的Contract Number都以0开头。
- 将Account Holder ID列数据类型改为整数。
- 将Account Holders.csv文件下的清理节点与Account Information.csv文件下的转置节点进行联接。
- 联接方式采用Inner,联接字段为两个Account Holder ID。
- 移除联接后产生的Account Holder ID_1列。
联接交易信息和账户信息
- 创建一联接节点,将交易信息处理结果与账户信息处理结果联接起来
- 联接方式为Inner
- 联接字段为交易信息中的Account From和账户信息中的Account Number。
- 添加一清理节点
- 移除Account From字段。
- 排除Account Type中值为Platinum的记录,也就是将白金账户类型的记录删除。
输出
输出结果如下图所示:
共12个字段,476行。