#pragma once #pragma GCC warning \ "This Library is still in develop, Do NOT USE in Production Environment" #include "mix_cc/dataframe/detail/eigen_helper.h" #include "mix_cc/dataframe/detail/inner_exp.h" #include #include #include #include #include namespace mix_cc { namespace dataframe { /** * @brief dataframe for c++ eigen3 struct */ class DataFrame { private: std::vector col_name_; Eigen::MatrixXd data_; std::unique_ptr filter_exp_; std::vector> transfor_exp_; public: DataFrame(const std::vector& col_name, const Eigen::MatrixXd& matrix_data) : col_name_(col_name), data_(matrix_data) {} ~DataFrame(); size_t row_count() const { return data_.rows(); } size_t col_count() const { return data_.rows(); } auto row(size_t index) const { return data_.row(index); } auto col(size_t index) const { return data_.col(index); } void filter(std::string& filter_exp_str); void transform(std::vector& transfor_exp_strs); }; } // namespace dataframe } // namespace mix_cc