跳到主要內容

發表文章

目前顯示的是有「data」標籤的文章

Rust - 以 JSON 為資料來源建立 Polars DataFrame

緣起 在科技的蓬勃發展中,資料處理和分析變得愈發重要。Rust 語言的 Polars 框架為我們提供了一個強大的工具,讓資料操作變得更加容易且高效。這個框架支援以 JSON 格式匯入資料並建立 Dataframe,為我們提供了一個直觀且方便的方式來操作資料。 本文開始 本文的目的,為使用 JSON 為資料來源,在 Rust 中建立 Polars 的 Dataframe。在以下的文章裡,我們將在 Cargo.toml 中,使用如下的設定: [dependencies] polars = { version = "0.36.2", features = ["json"] } 撰文的當下,Polars 的最新版本為 0.36.2。參考 Polars 的 官方文件 ,它提供了以下的程式碼段落,以匯入 JSON 檔案內容: use polars :: prelude :: * ; let mut file = std :: fs :: File :: open ( "docs/data/path.json" ) . unwrap (); let df = JsonReader :: new ( & mut file ) . finish () . unwrap (); 到這裡,就能輕鬆的利用一個 JSON 檔案的內容,建立出 Dataframe 物件。 好了,故事結束,收工。 . . . . . 如果故事真的就這麼簡單,我想也就沒有撰寫這篇文章的必要了。 想想上面程式段落的例子,過程裡需要透過一個存在於檔案系統中的 JSON 檔案為媒介,儲存我們要處理的資料,再透過「JsonReader」讀入的 Dataframe 中處理。如果這些資料是從網路上取得(例如呼叫RESTful API),以字串變數的形式存在於系統之中,例如下面的內容: let msg = r#"[     {"id": 1, "name": "A", "age": 10},     {"id": 2, "name": "B", "age": 20} ]...

Rust - Polars 資料欄位型態轉換,從 str 變 Date

緣起 Polars 是一個以 Rust 語言開發的 「DataFrame」 新興套件,它可以同時在 Rust 及 Python 中使用。Polars 憑藉著 Rust 的執行速度為基礎,讓它在資料處理的領域中, 逐漸流行起來。 但正由於它還在發展初期,目前網路上的參考文章相對較少,中文的內容更是稀有;所以整理了一下這週末的一些研究心得,一來避免自己忘記,二來也在網路上與大家分享,希望慢慢的能讓 Rust 的中文資源可以越來越完整,有朝一日可以在華人世界中流行起來。 本文開始 本週研究的主題是 Polars 裡,對「DataFrame」某個「str」欄位,進行資料型別轉換為「Date」或「Datetime」。資料的轉換可以有多種方式,應該不只限於接下來提到的方法。 建立第一個資料集 為了開始這個操作,我們需要先建立起一個「DataFrame」。 let date = Series :: new ( "trans_date" , & [ "2023-05-01" , "2023-05-02" , "2023-05-03" , "2023-05-04" , "2023-05-05" , ]); let df = DataFrame :: new ( vec ! [ date ]); println ! ( " { } " , df . clone () . collect () ? );   執行後, 可以看到以下的結果:  shape: (5, 1) ┌────────────┐ │ trans_date │ │ ---        │ │ str        │ ╞════════════╡ │ 2023-05-01 │ │ 2023-05-02 │ │ 2023-05-03 │ │ 2023-05-04 │ │ 2023-05-05 │ └────────────┘ 從執行的結果中,我們可以清楚的看到,目前所建立的「DataFrame」,在「trans_date」的欄位中,...