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一起維護。