clojure
{:deps {clojure.data.csv {:mvn/version "1.4.0"}}}
clojure
(ns my-csv-analysis
(:require [clojure.data.csv :as csv]))
clojure
(def input-stream (clojure.java.io/reader "example.csv"))
(def data (csv/read-csv input-stream))
clojure
(def filtered-data (filter #(= (nth % 2) "China") data))
(def transformed-data (map #(vector (nth % 0) (nth % 1)) filtered-data))
(def aggregated-data (reduce (fn [acc row] (update acc (nth row 1) conj (nth row 0))) {} transformed-data))
clojure
(def output-stream (clojure.java.io/writer "output.csv"))
(csv/write-csv output-stream aggregated-data)