A Go library providing DataFrames, Series, and data wrangling operations for tabular data manipulation.
Gota is a Go library that implements DataFrames and Series for data wrangling, offering a tabular data structure similar to those found in pandas (Python) or R. It enables efficient manipulation, filtering, aggregation, and transformation of datasets directly within Go applications, prioritizing type safety and performance.
Go developers working with tabular data who need to perform data manipulation, cleaning, and analysis within their Go applications, such as those building data pipelines, analytics tools, or machine learning systems.
Developers choose Gota for its expressive, chainable API that brings pandas-like data wrangling capabilities to Go, with built-in type safety, support for missing values, and interoperability with gonum matrices for numerical computing.
Gota: DataFrames and data wrangling in Go (Golang)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Methods like Filter, Select, and Mutate are chainable, enabling expressive, readable data transformation pipelines similar to pandas, as shown in the chaining operations example.
Series enforce column types (Int, Float, String, Bool) and handle missing values, ensuring data integrity during manipulations and reducing runtime errors.
Supports loading from CSV, JSON, structs, maps, and records with configurable type detection, making it easy to import data from various sources without extra parsing code.
Interoperates with gonum matrices, allowing seamless use in numerical computing contexts within Go, as demonstrated by the LoadMatrix and custom matrix interface examples.
The README explicitly warns that the API is still in flux, posing a risk of breaking changes and making it unsuitable for projects requiring long-term stability.
Lacks built-in support for statistical methods, visualization, or machine learning integrations compared to pandas, requiring additional libraries for complex analytics.
The DataFrame abstraction may introduce performance overhead for very large datasets compared to using raw Go slices or arrays, due to serialization and type checking.