文件处理器 · 集算器敏捷计算-九游会登陆

经常面对这类任务?

  • 对着500多个excel做同样的汇总统计
  • 去除文本文件里的重复行
  • 对比两个csv有啥差异
  • 几十个excel合并起来,把大excel拆成多个小的
  • 几个excel的数据要用同一个列关联起来

被这些问题困扰?

  • 文件装入mysql倒是能处理,但安装导入都太麻烦
  • python装上版本又不对,不知道为啥能读excel2017却不认得2003
  • java学习和使用都太难了,结果每次都要手工做
  • 文件太大读进来内存溢出

当前常用技术有什么问题?

java

  • 需要专业程序员,技术要求高
  • 计算类库少,代码繁琐
  • 开发环境配置复杂

sql

  • 文件需先入库再计算,非常麻烦
  • 部署复杂、配置复杂、算法难写
  • ide不友好,调试困难

python

  • 语法不是专为结构化数据计算设计
  • 复杂运算不易开发
  • 版本之间存在不兼容问题
  • 外围开源包安装配置麻烦

使用集算器实现自由计算

仅需基本的编程知识,即可自由、自助、快速地进行文件计算
桌面级工具,即装即用,环境配置简单!

便利开发环境

即装即用,调试功能完善

敏捷语法体系

某支股票最长连续涨了多少交易日

python

1 import pandas as pd
2 def iterate(col):
3 prev = 0;
4 res = 0;
5 val = 0;
6 for curr in col:
7 if curr – prev > 0:
8 res = 1;
9 else:
10 res = 0;
11 prev = curr;
12 if val < res:
13 val = res;
14 return val;
15 data = pd.read_excel('d:/stock.xlsx',sheet_name=0). sort_values('date').groupby('company')['price'].apply(iterate);

spl

a
1 =file("d:/stock.xlsx").xlsimport@t().sort(date).group(company)
2 =0
3 =a1.max(a2=if(price>price[-1],a2 1,0))

集合运算领域专业语法,同样过程代码更简洁!

直接sql语法

直接针对文件使用sql,无须将数据入库
a
1 $select * from d:/stock.xlsx where company='0001' order by date
2 $select company,max(price),min(price) from d:/stock.xls where month(date)=1 group by company
3 $select company.name,stock.date,stock.price from d:/stock.xls stock left join d:/company.txt company on stock.company=company.id
spl中的简单sql

面向过程计算

完整的循环分支控制

多样性数据源接口

  • txt、log、csv、ini
  • xls、xlsx
  • excel各版本 2003…2013…2019
  • xml、json

示例:文本间差异

算法
相对于old.csv,找到new.csv中新增的记录,其中username和date联合确定一条记录。
文件
old.csv new.csv
  username,date,salevalue,salecount username,date,salevalue,salecount
1 rachel,2015-03-01,4500,9 rachel,2015-03-01,4500,9
2 rachel,2015-03-03,8700,4 rachel,2015-03-02,5000,5
3 tom,2015-03-02,3000,8 ashley,2015-03-01,6000,5
4 tom,2015-03-03,5000,7 rachel,2015-03-03,11700,4
5 tom,2015-03-04,6000,12 tom,2015-03-03,5000,7
6   john,2015-03-04,4800,4
代码
  a b c
1 =file("d:\\old.csv").import@ct() =file("d:\\new.csv").import@ct() /逗号分隔的文本
2 =new=[b1,a1].merge@od()   /求差集

示例:多excel多sheet分组汇总

算法
同一目录下有多个excel,每个excel有多个sheet,sheet格式相同,合并所有excel的所有sheet,并按月分组,对金额求和求平均。
文件
customer id customer name invoice number amount purchase date
1234 john smith 100-0002 $1,200.00 2013/1/1
2345 mary harrison 100-0003 $1,425.00 2013/1/6
3456 lucy gomez 100-0004 $1,390.00 2013/1/11
4567 rupert jones 100-0005 $1,257.00 2013/1/18
5678 jenny walters 100-0006 $1,725.00 2013/1/24
6789 samantha donaldson 100-0007 $1,995.00 2013/1/31
代码
  a b c
1 for directory@p("d:/excel/*.xlsx") =file(a1).xlsopen() /循环目录下每个excel
2   =b1.conj(b1.xlsimport@t(;~.stname))  /循环每个sheet
3   =@|b2  /依次合并sheet
4

=a4.groups (month('purchase date'):month;sum(amount):total,avg(amount):average)

 /分组汇总

集算器与常用语言的对比

spl技术特点

  • 敏捷性 即装即用,环境配置简单,无须额外插件
  • 适用性 完善的类库和过程计算,可进行复杂数据处理
  • 易用性 语法简单直观,调试方便,无须专业程序员
  • 开放性 内置多种文件访问接口,直接计算
  • 集成性 无缝嵌入应用系统,易于转为应用内计算

资源链接


网站地图