10个版本

使用旧的Rust 2015

0.3.2 2019年4月10日
0.3.1 2019年4月3日
0.3.0 2019年2月21日
0.2.0 2018年10月14日
0.1.1 2018年3月31日

#854 in 编码

自定义许可证

375KB
8K SLoC

Agnes

Build Status Documentation Join the chat at https://gitter.im/agnes-rs/community

agnes是Rust的数据处理库。

一些有用的链接

概述

agnes是Rust编程语言的一个静态类型高性能数据处理库。它提供了数据加载、预处理、聚合、注解和序列化的实用工具。Agnes的主要目标是提供功能,以帮助开发健壮、高效、易于阅读的应用程序,用于您的数据预处理任务。

功能

  • 用于处理异构类型表格数据的数据结构。
  • 可扩展的数据源框架,目前支持加载本地或基于Web的CSV文件,更多数据源类型正在开发中。
  • 通过serde进行数据输出,允许输出到任何serde支持的序列化输出。
  • 处理所有数据类型的缺失数据(NaN)。
  • 数据合并和连接以组合来自多个源的数据。
  • 基于迭代器或索引的数据访问

设计原则

agnes在设计时考虑了以下一些基本原则

  • 最小化数据重复:单个数据源可以被多个数据视图或输出共享。
  • 类型安全:Agnes利用Rust的类型系统来提供静态类型提供的编译时优势。
  • 采用现有的Rust范式和最佳实践。这包括迭代器的使用、显式内存控制和现有的Rust库(如serde)。

使用方法

要使用,请将以下内容添加到您的Cargo.toml

[dependencies]
agnes = "0.3"

并将以下内容添加到您的crate根目录

extern crate agnes;

示例

作为一个简单的示例,让我们构建一个应用程序,它读取数据集,并显示它。一个更完整的示例,展示了更多agnes功能,可以在指南这里找到。

此示例从按国家划分的数据文件中加载特定字段,并展示了表格定义格式、源指定格式和从URI加载功能。此示例也可以在这里找到:此处

#[macro_use]
extern crate agnes;

use agnes::source::csv::load_csv_from_uri;

// specify the GDP table (only the fields we are concerned about)
tablespace![
    table gdp {
        CountryName: String,
        CountryCode: String,
        Gdp2015: f64,
    }
];

fn main() {
    // specify the source location for our GDP fields
    let gdp_spec = spec![
        fieldname gdp::CountryName = "Country Name";
        fieldname gdp::CountryCode = "Country Code";
        fieldname gdp::Gdp2015 = "2015";
    ];

    // load the CSV file from a URI
    let gdp_view =
        load_csv_from_uri("https://wee.codes/data/gdp.csv", gdp_spec).expect("CSV loading failed.");

    // print the DataView
    println!("{}", gdp_view);
}

更改和未来计划

许可证

本作品根据MIT许可证授权。

依赖项

~19–31MB
~447K SLoC