Skip to content

mgorshkov/pd

Repository files navigation

Build status

About

Methods from pandas library on top of NP library.

Requirements

Any C++20-compatible compiler:

  • gcc 8 or higher
  • clang 10 or higher
  • Visual Studio 2019 or higher

Repo

git clone /~https://github.com/mgorshkov/pd.git

Build unit tests and sample

Linux/MacOS

mkdir build && cd build
cmake ..
cmake --build .

Windows

mkdir build && cd build
cmake ..
cmake --build . --config Release

Build docs

cmake --build . --target doc

Open scipy/build/doc/html/index.html in your browser.

Install

cmake .. -DCMAKE_INSTALL_PREFIX:PATH=~/pd_install
cmake --build . --target install

Usage example (samples/read_csv)

#include <iostream>

#include <pd/read_csv.hpp>

int main(int, char **) {
    using namespace pd;

    auto df = read_csv("https://raw.githubusercontent.com/adityakumar529/Coursera_Capstone/master/diabetes.csv");
    std::cout << "df.shape=" << df.shape() << std::endl;
    const char *non_zero[] = {"Glucose", "BloodPressure", "SkinThickness", "Insulin", "BMI"};
    for (const auto &column: non_zero) {
        df[column] = df[column].replace(0L, np::NaN);
        auto mean = df[column].mean(true);
        df[column] = df[column].replace(np::NaN, mean);
    }

    auto X = df.iloc(":", "0:8");
    auto y = df.iloc(":", "8");

    std::cout << "X=" << X << std::endl;
    std::cout << "y=" << y << std::endl;
    
    return 0;
}

How to build the sample

  1. Clone the repo
git clone /~https://github.com/mgorshkov/pd.git
  1. cd samples/read_csv
cd samples/read_csv
  1. Make build dir
mkdir -p build-release && cd build-release
  1. Configure cmake
cmake -DCMAKE_BUILD_TYPE=Release ..
  1. Build

Linux/MacOS

cmake --build .

Windows

cmake --build . --config Release
  1. Run the app
$./read_csv

Links