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 返回结果集
