Axion
一个 Rust 数据处理库,提供类似 Pandas 的数据操作体验。
📦 安装
将以下内容添加到你的 Cargo.toml 文件中:
[]
= "0.1.0"
🛠️ 快速开始
创建 Series
use Series;
// 从向量创建 Series
let s1 = new;
// 从数组创建 Series
let s2 = new;
// 包含空值的 Series
let s3 = new_from_options;
基本操作
// 获取长度
println!;
// 访问元素
if let Some = s1.get
// 迭代器
for value in s1.iter_valid
数学运算
// Series 间运算
let s1 = new;
let s2 = new;
let result = &s1 + &s2; // [5, 7, 9]
// 与标量运算
let scaled = &s1 * 2; // [2, 4, 6]
比较操作
let s = new;
// 与标量比较
let mask = s.gt.unwrap; // [false, false, false, true, true]
// 过滤数据
let filtered = s.filter;
聚合函数
let s = new;
println!; // Some(15.0)
println!; // Some(3.0)
println!; // Some(1.0)
println!; // Some(5.0)
空值处理
let s = new_from_options;
// 检查空值
let null_mask = s.is_null;
// 填充空值
let filled = s.fill_null;
// 只处理有效值
for value in s.iter_valid
字符串操作
let s = new;
// 字符串访问器
let lengths = s.str.len; // 字符串长度
let upper = s.str.to_uppercase; // 转大写
函数式编程
let s = new;
// 映射操作
let doubled = s.apply;
// 并行处理
let processed = s.par_apply;
📊 DataFrame 支持
use DataFrame;
// 创建 DataFrame
let mut df = new;
df.add_column.unwrap;
df.add_column.unwrap;
df.add_column.unwrap;
// 选择列
let age_column = df.column.unwrap;
// 过滤行
let high_earners = df.filter.unwrap;
// 显示 DataFrame
println!;
🔧 高级特性
类型转换
let s_f64 = new;
let s_f32 = s_f64..unwrap;
排序
let mut s = new;
s.sort; // 升序排序
println!; // [1, 1, 3, 4, 5]
性能优化提示
// 检查是否已排序(用于优化某些操作)
if s.is_sorted
// 预分配容量
let mut s = new_empty;
// 添加数据...
🧪 测试
运行测试套件:
运行基准测试:
🛣️ 路线图
- 更多聚合函数 (std, var, quantile 等)
- 窗口函数支持
- 分组操作 (groupby)
- 连接操作 (join)
- 时间序列支持
- 文件 I/O (CSV, JSON, Parquet)
- 更多字符串操作
- 缺失值插值方法
🤝 贡献
欢迎贡献代码!
- Fork 项目
- 创建特性分支
- 提交更改
- 推送到分支
- 开启 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。