#csv #data #data-processing #user-friendly #loading #exporting #manipulating

datatroll

一个强大且用户友好的Rust库,用于高效地加载、操作和导出存储在CSV文件中的数据

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次下载

MIT 许可证

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");
    }
}

无运行时依赖项