import org.apache.commons.csv.* import java.text.* def records = 0 def ct = [:].withDefault { [min:Integer.MAX_VALUE, max:0, sum:0] } def fmt = CSVFormat.EXCEL .withHeader() def parser = fmt.parse(new FileReader("export.csv")) for(record in parser){ parser.getHeaderMap().each { key, index -> def len = record.get(index).size() ct[key].min = ct[key].min < len ? ct[key].min:len ct[key].max = ct[key].max > len ? ct[key].max:len ct[key].sum += record.get(index).size() } records++ } def df = new DecimalFormat("#.#") ct.each { key, value -> println "${key} : min${value.min} - max${value.max}, \ avg:${df.format(value.sum/records)}" } println "total records:${records}"
2014年9月19日金曜日
Apache Commons CSVとgroovyで、CSVデータの各列の最小長・最大長・平均長を求める
Apache Commons CSVとgroovyで、CSVデータの各列の最小長・最大長・平均長を求めるには、以下のコードを実行します。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿