4个版本
0.1.3 | 2024年2月6日 |
---|---|
0.1.2 | 2024年1月25日 |
0.1.1 | 2024年1月25日 |
0.1.0 | 2024年1月22日 |
#387 在 文本处理 中
每月37次下载
50KB
842 行
datatroll: 使用Rust强大地管理您的CSV数据
datatroll是一个强大且用户友好的Rust库,用于高效地加载、操作和导出存储在CSV文件中的数据。告别繁琐的手动数据解析,迎接轻松管理数据的流畅工作流程。
功能
- 灵活的数据加载
- 使用可配置的分隔符和标题从CSV文件中读取数据。
- 指定每列的数据类型,确保类型安全并提高处理效率。
- 优雅地处理缺失值。
- 直观的数据操作
- 将具有自定义值的行插入到数据中。
- 删除不需要的行或列,以便关注相关数据。
- 利用强大的聚合功能计算
- 数字列的平均值、最大值、最小值和中间值。
- 类别列的众数(最频繁的值)。
- 数字列的方差。
- 使用lambda函数对特定列应用自定义转换。
- 支持分页
- 无缝数据导出
- 将操作后的数据写回新的CSV文件,保留原始格式或指定自己的格式。
- 使用选项如分隔符选择和标题包含来自定义输出。
好处
- 节省时间和精力:专注于分析数据,而不是管理数据。
- 最小化错误:类型安全的数据处理和清晰的错误消息提高了代码可靠性。
- 提高生产力:通过更快的数据加载、操作和导出完成更多任务。
- 编写简洁的代码:享受直观的API,用于简洁和表达式的数据管理任务。
入门
使用Cargo将rust-csv-wrangler添加到您的项目中
[dependencies]
datatroll = "0.1.0"
导入库并开始管理您的数据
use datatroll::{Cell, Sheet};
fn main() {
// Read data from a CSV file
let mut sheet = Sheet::new();
if let Err(err) = sheet.load_data("input.csv") {
eprintln!("Error loading data: {}", err);
} else {
println!("Data loaded successfully from input.csv");
}
// drop all the rows in which the review is less than 4.0
sheet.drop_rows("review", |c| {
if let Cell::Float(r) = c {
return *r < 4.0;
}
false
});
// calculate the variance of the review column
let variance = sheet.variance("review").unwrap();
println!("variance for review is: {variance}");
// Write the transformed data to a new CSV file
if let Err(err) = sheet.export("output.csv") {
eprintln!("Error exporting data: {}", err);
} else {
println!("Data exported successfully to output.csv");
}
}