对 csv 文件中的数据进行分组汇总
对 csv 文件中的数据进行分组汇总
例题描述和简单分析
有 csv 文件 sample.csv,如下:
City,Year,Income
Delhi,2001,12345
Mumbai,2001,43211
Hyderabad,2001,54322
Delhi,2002,76543
Mumbai,2002,43211
Hyderabad,2002,54322
Bangalore,2001,43211
Bangalore,2001,54322
需要按 City 分组,求 Income 的平均值,结果如下:
Bangalore - 48766
Delhi - 44444
Hyderabad - 54322
Mumbai - 43211
解法及简要说明
在集算器中编写脚本 p1.dfx,如下所示:
A |
|
1 |
=file("city.csv").import@ct() |
2 |
=A1.groups(City;int(avg(Income))).(#1/" - "/#2) |
简要说明:
A1 读取带表头的 csv 文件
A2 按 City 分组,求均值,再将分组后的序表整成需要的输出格式
JAVA 集成这段代码的方法可参考:《Java 如何调用 SPL 脚本》。
https://stackoverflow.com/questions/60948224/approach-to-find-average-by-x-from-a-file
英文版