hosseinmoein/DataFrame

C++ DataFrame for statistical, financial, and ML analysis in modern C++

What it solves

DataFrame is a high-performance C++ library designed for in-memory data exploration, transformation, and statistical analysis. It provides a way to handle tabular data (similar to Excel or SQL tables) in C++ without the overhead associated with Python-based tools like Pandas or Polars, making it particularly suitable for large datasets and performance-critical applications.

How it works

The library implements a templatized, heterogeneous container where columns are treated as first-class citizens. This ensures that operations and access to columns are more efficient than row-by-row processing. To maximize performance, it follows strict memory principles: it keeps column data in contiguous memory spaces, avoids unnecessary data copying, and avoids the following patterns: pointers (like linked lists or std::any), unions, or std::variant.

Who it’s for

It is designed for data scientists, quantitative traders, and C++ developers who require efficient tabular data processing for statistical, machine-learning, or financial applications.

Highlights

  • Multidimensional Support: Columns can contain vectors of any type, including other DataFrames, allowing the structure to be of any dimension.
  • Extensive Analytical Toolset: Includes built-in visitors for basic statistics (Mean, Stdev), advanced analysis (PCA, FFT, Eigens), and various trading indicators.
  • High Performance: Employs extensive multithreading for large datasets and is designed for memory efficiency to handle billions of rows.
  • Open-Ended API: The API allows users to easily integrate their own custom algorithms.
  • Self-Contained: Depends only on the C++ language and its standard library.

Related

  • Project
  • Project
  • Project
  • Project
  • Project