← all repositories
rocketlaunchr/dataframe-go

Pandas for Go, minus the Python

A DataFrame library that brings tabular data manipulation to Go without leaving the ecosystem.

1.3k stars Go Data ToolingOther AI
dataframe-go
Velocity · 7d
+0.5
★ / day
Trend
steady
star history

What it does

dataframe-go gives Go developers a spreadsheet-like data structure for statistics, machine learning, and data exploration. It reads and writes CSV, JSONL, Parquet, Excel, and SQL databases; handles missing values as NaN; and supports sorting, filtering, interpolation, and time-series forecasting.

The interesting bit

The library leans into Go’s type system rather than fighting it. Each column is a typed Series (int64, float64, string, time.Time), with a generic escape hatch for custom types like civil.Date. It also plugs directly into gonum for statistics and can evaluate math expressions like sin(2*π*x/24) against columns.

Key highlights

  • Import/export: CSV, JSONL, Parquet, MySQL, PostgreSQL, Excel
  • Built-in interpolation (linear, spline, Lagrange) and forecasting (Holt-Winters)
  • Cross-platform plotting via go-chart integration
  • Fake data generation for testing
  • Pandas-compatible sub-package (marked “help required”)
  • Manual lock/unlock iteration for concurrent access

Caveats

  • The API is explicitly unstable; the authors plan to rewrite the entire package once Go generics landed (Go 1.18), collapsing multiple Series types into one generic type
  • Locking is manual — you must df.Lock() before iterating if you want safety
  • The README recommends pinning to a commit ID, not a branch

Verdict

Worth a look if you’re building data pipelines in Go and don’t want to shell out to Python. Skip it if you need API stability today or if your team is already invested in Polars/pandas — the generics rewrite may change everything.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.