CSV
读取与写入
读取CSV文件应该看起来很熟悉:
df = pl.read_csv("docs/assets/data/path.csv")
use polars::prelude::*;
let mut df = df!(
"foo" => &[1, 2, 3],
"bar" => &[None, Some("bak"), Some("baz")],
)
.unwrap();
let mut file = std::fs::File::create("docs/assets/data/path.csv").unwrap();
CsvWriter::new(&mut file).finish(&mut df).unwrap();
let df = CsvReadOptions::default()
.try_into_reader_with_file_path(Some("docs/assets/data/path.csv".into()))
.unwrap()
.finish()
.unwrap();
编写CSV文件与write_csv函数类似:
df = pl.DataFrame({"foo": [1, 2, 3], "bar": [None, "bak", "baz"]})
df.write_csv("docs/assets/data/path.csv")
let mut df = df!(
"foo" => &[1, 2, 3],
"bar" => &[None, Some("bak"), Some("baz")],
)
.unwrap();
let mut file = std::fs::File::create("docs/assets/data/path.csv").unwrap();
CsvWriter::new(&mut file).finish(&mut df).unwrap();
扫描
Polars 允许您扫描CSV输入。扫描会延迟文件的实际解析,并返回一个称为LazyFrame的惰性计算持有者。
df = pl.scan_csv("docs/assets/data/path.csv")
let lf = LazyCsvReader::new("docs/assets/data/path.csv")
.finish()
.unwrap();
如果您想知道为什么这是可取的,您可以阅读更多关于这些Polars优化的信息 这里。