About Laercio Serra
A Pandas-like DataFrame library for Go, powered by DuckDB
Hey, welcome!
I am a data engineer with know-how and expertise in math, data, and coding.
If you are interested to know more about my work, you can visit my old blog. There is a lot of information, but soon this blog will be deactivated. Because I'm working on the migration to this new blog.
About the App
DuckFrame brings the familiar DataFrame experience to Go, using DuckDB as the execution engine. Get the simplicity of Pandas with the performance of a vectorized columnar database — all in a single binary, no Python required.
How does it work
```go
db, _ := engine.Open("")
defer db.Close()
df, _ := duckframe.ReadCSV(db, "employees.csv")
defer df.Close()
result, _ := df.Filter("age > 30").
GroupBy("country").
Agg("salary", "mean")
result.Show()
// DataFrame [3 rows x 2 cols]
// country mean(salary)
// --------- ------------
// Brazil 94000.41
// Germany 82500.37
// USA 70000.00
Features:
- Pandas-like API — `Filter`, `Select`, `GroupBy`, `Agg`, `Sort`, `Join`, `Union`, `Describe`...
- DuckDB-powered — vectorized execution, automatic parallelism, zero-copy Parquet/CSV reads
- Multi-format — CSV, Parquet, JSON Lines (read & write)
- External connectors — SQLite, PostgreSQL, MySQL, any `database/sql` driver
- Concurrency — `ParallelApply`, `ReadCSVChunked`, context-aware operations
- SQL escape hatch — `df.Sql("SELECT ... FROM {df} WHERE ...")`
- Type-safe materialization — `ToSlice(&[]MyStruct{})` with struct tag mapping
- Fluent error handling — chain operations safely, check errors at the end
- Single binary — no runtime dependencies, CGO for DuckDB only
Recent supporters

