dataframe-0.3.0.0: examples/OneBillionRowChallenge.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeApplications #-}
module Main where
import qualified DataFrame as D
import qualified DataFrame.Functions as F
import DataFrame ((|>))
main :: IO ()
main = do
parsed <- D.readSeparated ';' D.defaultOptions "./data/measurements.txt"
let measurement = (F.col @Double "Measurement")
print $
parsed
|> D.groupBy ["City"]
|> D.aggregate [ (F.minimum measurement) `F.as` "minimum"
, (F.mean measurement) `F.as` "mean"
, (F.maximum measurement) `F.as` "maximum"]
|> D.sortBy D.Ascending ["City"]