Skip to content

Csv

読み書き

CSV ファイルの読み込みは以下のように行います:

read_csv

df = pl.read_csv("docs/data/path.csv")

CsvReader · Available on feature csv

use polars::prelude::*;

let df = CsvReader::from_path("docs/data/path.csv")
    .unwrap()
    .finish()
    .unwrap();

CSV ファイルの書き出しは write_csv 関数を使って以下のように行います:

write_csv

df = pl.DataFrame({"foo": [1, 2, 3], "bar": [None, "bak", "baz"]})
df.write_csv("docs/data/path.csv")

CsvWriter · Available on feature csv

let mut df = df!(
    "foo" => &[1, 2, 3],
    "bar" => &[None, Some("bak"), Some("baz")],
)
.unwrap();

let mut file = std::fs::File::create("docs/data/path.csv").unwrap();
CsvWriter::new(&mut file).finish(&mut df).unwrap();

スキャン

Polars では CSV 入力を スキャン することができます。スキャンすることで、ファイルの実際の解析を遅延させ、代わりに遅延計算ホルダーである LazyFrame を返します。

scan_csv

df = pl.scan_csv("docs/data/path.csv")

LazyCsvReader · Available on feature csv

let lf = LazyCsvReader::new("./test.csv").finish().unwrap();

なぜこれが望ましいのかについては、Polars の最適化について こちら で詳しく説明しています。