| CARVIEW |
Select Language
HTTP/1.1 200 OK
Connection: keep-alive
Server: nginx/1.24.0 (Ubuntu)
Content-Type: text/html; charset=utf-8
Cache-Control: public, max-age=300
Content-Encoding: gzip
Via: 1.1 varnish, 1.1 varnish
Accept-Ranges: bytes
Age: 0
Date: Sat, 17 Jan 2026 01:08:18 GMT
X-Served-By: cache-dfw-kdal2120143-DFW, cache-bom-vanm7210045-BOM
X-Cache: MISS, MISS
X-Cache-Hits: 0, 0
X-Timer: S1768612098.913329,VS0,VE445
Vary: Accept, Accept-Encoding
transfer-encoding: chunked
dataframe: A fast, safe, and intuitive DataFrame library.
dataframe: A fast, safe, and intuitive DataFrame library.
Modules
[Index] [Quick Jump]
Downloads
- dataframe-0.4.0.7.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.2.0.0, 0.2.0.1, 0.2.0.2, 0.3.0.0, 0.3.0.1, 0.3.0.2, 0.3.0.3, 0.3.0.4, 0.3.1.1, 0.3.1.2, 0.3.2.0, 0.3.3.0, 0.3.3.1, 0.3.3.2, 0.3.3.3, 0.3.3.4, 0.3.3.5, 0.3.3.6, 0.3.3.7, 0.3.3.8, 0.3.3.9, 0.3.4.0, 0.3.4.1, 0.3.5.0, 0.4.0.0, 0.4.0.2, 0.4.0.3, 0.4.0.4, 0.4.0.5, 0.4.0.6, 0.4.0.7 |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | aeson (>=0.11.0.0 && <3), array (>=0.5.4.0 && <0.6), attoparsec (>=0.12 && <0.15), base (>=4 && <5), bytestring (>=0.11 && <0.13), bytestring-lexing (>=0.5 && <0.6), cassava (>=0.1 && <1), containers (>=0.6.7 && <0.9), dataframe (>=0.4 && <0.5), directory (>=1.3.0.0 && <2), filepath (>=1.4 && <2), granite (==0.3.0.5), hashable (>=1.2 && <2), mmap (>=0.5.8 && <0.6), parallel (>=3.2.2.0 && <5), process (>=1.6 && <1.7), random (>=1.3 && <2), regex-tdfa (>=1.3.0 && <2), scientific (>=0.3.1 && <0.4), snappy-hs (>=0.1 && <0.2), template-haskell (>=2.0 && <3), text (>=2.0 && <3), time (>=1.12 && <2), unordered-containers (>=0.1 && <1), vector (>=0.13 && <0.14), vector-algorithms (>=0.9 && <0.10), zlib (>=0.5 && <1), zstd (>=0.1.2.0 && <0.2) [details] |
| Tested with | ghc ==9.4.8 || ==9.6.7 || ==9.8.4 || ==9.10.3 || ==9.12.2 |
| License | GPL-3.0-or-later |
| Copyright | (c) 2024-2025 Michael Chavinda |
| Author | Michael Chavinda |
| Maintainer | mschavinda@gmail.com |
| Uploaded | by mchav at 2026-01-13T22:44:04Z |
| Category | Data |
| Bug tracker | https://github.com/mchav/dataframe/issues |
| Source repo | head: git clone https://github.com/mchav/dataframe |
| Distributions | Stackage:0.4.0.7 |
| Reverse Dependencies | 3 direct, 0 indirect [details] |
| Executables | dataframe, dataframe-benchmark-example |
| Downloads | 415 total (136 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs available [build log] Last success reported on 2026-01-13 [all 1 reports] |
Readme for dataframe-0.4.0.7
[back to package description]DataFrame
A fast, safe, and intuitive DataFrame library.
Why use this DataFrame library?
- Encourages concise, declarative, and composable data pipelines.
- Static typing makes code easier to reason about and catches many bugs at compile time—before your code ever runs.
- Delivers high performance thanks to Haskell’s optimizing compiler and efficient memory model.
- Designed for interactivity: expressive syntax, helpful error messages, and sensible defaults.
- Works seamlessly in both command-line and notebook environments—great for exploration and scripting alike.
Features
- Type-safe column operations with compile-time guarantees
- Familiar, approachable API designed to feel easy coming from other languages.
- Interactive REPL for data exploration and plotting.
Quick start
Browse through some examples in binder or in our playground.
Install
Cabal
To use the CLI tool:
$ cabal update
$ cabal install dataframe
$ dataframe
As a prodject dependency add dataframe to your .cabal file.
Stack (in stack.yaml add to extra-deps if needed)
Add to your package.yaml dependencies:
dependencies:
- dataframe
Or manually to stack.yaml extra-deps if needed.
Example
dataframe> df = D.fromNamedColumns [("product_id", D.fromList [1,1,2,2,3,3]), ("sales", D.fromList [100,120,50,20,40,30])]
dataframe> df
------------------
product_id | sales
-----------|------
Int | Int
-----------|------
1 | 100
1 | 120
2 | 50
2 | 20
3 | 40
3 | 30
dataframe> :declareColumns df
"product_id :: Expr Int"
"sales :: Expr Int"
dataframe> df |> D.groupBy [F.name product_id] |> D.aggregate [F.sum sales `as` "total_sales"]
------------------------
product_id | total_sales
-----------|------------
Int | Int
-----------|------------
1 | 220
2 | 70
3 | 70
Documentation
- 📚 User guide: https://dataframe.readthedocs.io/en/latest/
- 📖 API reference: https://hackage.haskell.org/package/dataframe/docs/DataFrame.html