2.15 分组:非重复计数
序表中数据聚合时,非重复计数。分析数据文件中哪个字段最适合和 Pclass 字段组合作为主键。
PassengerId | Survived | Pclass | Name | Sex | Age |
---|---|---|---|---|---|
1 | 0 | 3 | “Braund, Mr. Owen Harris” | male | 22 |
2 | 1 | 1 | “Cumings, Mrs. John Bradley” | female | 38 |
3 | 1 | 3 | “Heikkinen, Miss. Laina” | female | 26 |
4 | 1 | 1 | “Futrelle, Mrs. Jacques Heath” | female | 35 |
5 | 0 | 3 | “Allen, Mr. William Henry” | male | 35 |
6 | 0 | 3 | “Moran, Mr. James” | male | |
7 | 0 | 1 | “McCarthy, Mr. Timothy J” | male | 54 |
… | … | … | … | … | … |
脚本:
A | B | C | |
---|---|---|---|
1 | =T(“titanic_train.xlsx”) | ||
2 | =A1.group(Pclass) | ||
3 | =A1.fno() | >result=[] | |
4 | for A3 | =A2.new(~.field(A4).icount():Dcount,~.len():Dlen) | |
5 | =B4.select(DCount==Dlen) | ||
6 | If(B5.len()==A2.len()) | >result.insert(0,A1.fname(A4)) | |
7 | return result |
A1 读数
A2 按 Pclass 分组
A3 获得列数
A4 按列数循环
B4 使用 icount() 逐列计算当前列在每一组中不重复的个数
B5 获得不重复个数和当前组长度相等的记录
B6 如果 B5 的记录数和 A2 的组数相等,说明当前列在所有组中都没有重复的值
C6 将当前列名添加到结果集中
A7 返回结果集