類 pandas.dataframe 的 C++實現 ( csv 文件讀寫,行列操作 )

dataframe-cxx

在Python上使用dataframe做數據分析是非常便利的,但是c++端就沒有這麼幸運了,暫時沒有官方的api供我們使用,所以博主通過前段時間的編寫的代碼,修改了一個在c++端使用的dataframe API。當然經驗有限,尚未考慮時間消耗(效率問題),不過對於博主目前的軟件使用尚且可以滿足,如果需要的話可以點擊 dataframe-cxx跳轉GitHub自行下載,下面我便對於該API進行詳細的講解,以便讀者快速使用(突然感覺寫博客挺好,還能督促自己學習😉)。

dataframe 的 C++實現的功能有

  • 從csv文件讀入
  • 寫入csv文件
  • 獲取一列數據
  • 插入一行數據
  • 插入&刪除一列數據
  • 通過列或行拼接兩個dataframe類

編譯環境: c++ 11 to 17

快速使用

下面是一段示例代碼,講解如何使用API操作Dataframe。

#include <iostream>
#include <vector>
#include <string>
#include "dataframe.hpp"

int main() {
    
    DataFrame<int> d1;
    DataFrame<int> d2;

    //read from csv file
    d1.read_csv("../test.txt",',');
    d2.read_csv("../test.txt",',');
    //concat double DataFrame object vertically
    auto d3 = d1 + d2;
    // insert one column from std::vector<T>
    d3["h"] = d3["f"]  = d3["g"] = std::vector<int>{6,7,8,9};
    // change data
    d3["f"][3] = 2;
    //remove one column by str
    d3.remove("g");
    //append one row from std::vector<T>
    d3.append(std::vector<int>(d3.column_num()));
    //concat double DataFrame object horizontally
    d3.concat_row(d3);
    //print dataframe
    std::cout << d3;
    //write into csv file
    d3.to_csv("../final.txt",',');
    return 0;
}

dataframe 類的完整代碼:

完整代碼較長在GitHub,如果有興趣的朋友歡迎去github一起維護。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章