新插件数据表处理,对数据库进行高级排序、分类汇总等操作
构建数据表
示例:
data = [["序号","商品名称","颜色","单价"],[1,"运动鞋","白色",150],[2,"皮鞋","黑色",200]]
objDF = Noah.Build(data)
或者:
data={"序号":[1,2],"商品名称":["运动鞋","皮鞋"],"颜色":["白色","黑色"],"单价":[150,200]}
objDF = Noah.Build(data)
利用 Excel 的读取区域命令获得的二维表,可以作为 data 使用。
构建数据表要求二维数组的第一行为标题行,如果是一个没有标题行的二维数组,构建前先添加标题行。
data=[[1,"运动鞋","白色",150],[2,"皮鞋","黑色",200]]
Unshift(data,["序号","商品名称","颜色","单价"])
或者不想起标题名,按下面这样也行:
data=[[1,"运动鞋","白色",150],[2,"皮鞋","黑色",200]]
Unshift(data,["A","B","C","D"])
数据表转数组
数据表转数组会强制包含列标签,但是否包含行标签,可以由用户决定。
数据表高级排序
示例表格如下:
排序命令:
objDF=Noah.order(df,["班级","语文"],[true,False],[["一班","二班","三班","四班","五班"]])
排序结果如下:
姓名 性别 班级 语文 数学 英语
1 李四 男 一班 35 97 63
6 牛五 男 一班 35 41 63
2 杨十 男 二班 60 68 77
9 丁一 女 二班 50 57 34
0 张三 男 三班 74 92 60
4 任七 女 三班 53 58 31
3 杜六 女 四班 75 57 71
7 杜九 女 四班 30 71 69
8 蒋八 男 五班 46 54 43
5 王二 男 五班 33 100 58
在示例中,首先按班级升序排列,班级相同的按语文降序排列,另外就是班级使用自定义序列去排序,因为默认的汉字是按照拼音首字母排列,无法达到要求。
数据表分类汇总
示例表格如下:
汇总命令:
objDF=group(objDF,"班级",{"数学":"mean","英语":"count","语文":"max"})
汇总结果如下:
班级 数学mean 英语count 语文max
0 一班 69.0 2 35
1 三班 75.0 2 74
2 二班 62.5 2 60
3 五班 77.0 2 46
4 四班 64.0 2 75
在示例中,我们按“班级”进行汇总,采用三种计算方式,其中数学取的是全班单科平均分,英语取的是有成绩人数,语文取的是全班单科最高分。
汇总命令:
objDF=group(objDF,"班级",{"语文":["mean","max","sum"]})
汇总结果如下:
班级 语文
mean max sum
0 一班 35.0 35 70
1 三班 63.5 74 127
2 二班 55.0 60 110
3 五班 39.5 46 79
4 四班 52.5 75 105
在本示例中,我们按“班级”进行汇总,采用三种计算方式,分别取语文的全班平均分,语文的全班最高分,语文的全班总分和。
group 常用的汇总计算命令:
安装方法:Uibot 获取扩展命令 - 数据表处理