jbclements / tabular-asa

A column-oriented, dataframe implementation for Racket.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tabular Asa

A fast, efficient, in-memory, immutable, dataframes implementation for Racket.

Quick Example

This is a brief example of loading a table from a CSV, filtering, grouping, aggregating, and plotting the data. Note: This example uses ~> from the threading module for clarity, but Tabular Asa does not require it.

(require plot)
(require tabular-asa)
(require threading)

(define books (call-with-input-file "books.csv" table-read/csv))
 
(let ([df (~> books
              (table-drop-na '(Publisher))
              (table-cut '(Genre Title))
              (table-groupby '(Genre))
              (group-count))])
  (parameterize ([plot-x-tick-label-angle 30]
                 [plot-x-tick-label-anchor 'top-right])
    (plot (discrete-histogram (for/list ([x (table-column df 'Genre)]
                                         [y (table-column df 'Title)])
                                (list x y)))
          #:x-label "Genre"
          #:y-label "Number of Titles Published")))

The above should produce a image plot like this:

Installation

Installing should be as simple as using raco from the command line:

% raco pkg install tabular-asa

After the above, you should be able to (require tabular-asa) and begin working!

Documenation

Refer to the scribble documentation.

License

This code is licensed under the MIT license. See the LICENSE.txt file in this repository for the complete text.

fin.

About

A column-oriented, dataframe implementation for Racket.

License:MIT License


Languages

Language:Racket 100.0%