练习四

本次练习的数据存储于Excel文件当中,点击下载该文件。

该文件中存储的是银行每月获取的新用户信息,每个月的数据对应Excel文件中的Sheet,我们要做的工次就是将这12个月的数据合并起来。

在这份数据中,demographic列,也就是客户的人口统计信息存储方式为行,而不是列,这对于阅读来说不友好,因此,我们需要内容进行处理,将该列信息由行转为列。

数据格式

这份Excel中有12个Sheet页,分别代表每个月的数据,格式如下图所示:

1692261010063

需求

  • 在BaskAdapt中导入这份Excel文件。
  • 将所有Sheet页中的数据合并在一起,这12个Sheet页中的数据大部分字段都是相同的,所以可以进行合并操作。
  • 由于拼写的差异,某些字段与预期不匹配,这里指的demographic列,可以看到有三个由于拼写问题导致的demographic列名显示略有不同,我们需要将这三个列合并成一个。
  • 添加一个Joining Date字段,内容为2023年与每个sheet页名称构成的月份以及Joining Day这个字段组成的年月日信息
  • 将Joining Date字段改成日期类型
  • 使用转置节点,将demographic列与value列值进行行转列操作,value列作为聚合字段,聚合类型为最大值或最小值(任意选一种类型即可)。
  • 创建计算字段AA,使用Fixed根据客户ID统计客户重复次数,将这个次数值作为新字段的值,找到这批数据中客户ID存在1条以上的数据。
  • 创建计算字段BB,使用Partition根据客户ID分组,使用OrderBy对分组后的数据根据Joining Date字段进行产生排序编号,排序方式是由小到大,也就是正序,将此排序号作为该计算字段的值。
  • 根据字段BB中产生的排序号,找到排序号大于1的行,只保留排序号等于1的记录,或者是排除排号不为1的记录,这样就实现了该批数据中每个客户ID对应的记录只有一条,且Joining Date字段的值取的是最小值。
  • 删除用于标记记录创建的AA列和BB列

输出

处理好后的数据格式如下图所示:

1692262062816

结果共5个字段,989行数据。

实现视频

results matching ""

    No results matching ""