A fast, powerful, flexible and easy to use open source data analysis and manipulation tool written in Rust

Overview

fisher-rs

Build Status Crates.io License

fisher-rs

fisher-rs is a Rust library that brings powerful data manipulation and analysis capabilities to Rust developers, inspired by the popular pandas library in Python. It aims to provide an intuitive and efficient way to work with structured data, making it easier to perform data wrangling, transformation, and analysis tasks in Rust projects.

fisher-rs is named in honor of Ronald A. Fisher, a pioneering statistician whose groundbreaking contributions have significantly shaped the field of statistics and data analysis. Fisher's innovative methodologies and concepts, including analysis of variance, maximum likelihood estimation, and the Fisher transformation, have played a vital role in modern statistical practices. Similarly, our library seeks to provide Rust developers with a set of tools inspired by Fisher's ideas, enabling them to efficiently manipulate and analyze data within the Rust programming ecosystem. Just as Fisher's work laid the foundation for statistical analysis, we hope fisher-rs will become an indispensable tool for data enthusiasts, researchers, and developers working with Rust.

Features

  • DataFrame: A two-dimensional, size-mutable, and heterogeneous data structure.
  • Series: A one-dimensional labeled array, capable of holding any data type.
  • Data Alignment: Automatic data alignment during operations for hassle-free analysis.
  • Powerful Data Manipulation: Perform filtering, grouping, aggregation, and more with ease.
  • Input/Output Support: Read and write data from/to various formats, such as CSV and JSON.

Getting Started

To use fisher-rs, you'll need Rust installed on your system. Add this library to your project by including it as a dependency in your Cargo.toml:

[dependencies]
fisher = "0.1.0"

Then, you can start using the library in your code:

use fisher_rs::prelude::*;

fn main() {
    // Create a DataFrame
    let mut df = DataFrame::new();
    df.add_column("name", Series::new(vec!["Alice", "Bob", "Charlie"]));
    df.add_column("age", Series::new(vec![25, 30, 22]));

    // Perform data manipulation
    let filtered = df.filter(df.column("age").gt(25));

    // Display the result
    println!("{}", filtered);
}

For more examples and detailed usage, check out the documentation.

Contributing

Contributions are welcome! If you'd like to contribute to fisher-rs, please follow the contribution guidelines.

License

This project is licensed under the MIT License.

You might also like...
This library provides a data view for reading and writing data in a byte array.

Docs This library provides a data view for reading and writing data in a byte array. This library requires feature(generic_const_exprs) to be enabled.

A Modern Real-Time Data Processing & Analytics DBMS with Cloud-Native Architecture, written in Rust

Datafuse Modern Real-Time Data Processing & Analytics DBMS with Cloud-Native Architecture Datafuse is a Real-Time Data Processing & Analytics DBMS wit

Rustic - a backup tool that provides fast, encrypted, deduplicated backups

Rustic is a backup tool that provides fast, encrypted, deduplicated backups. It can read the restic repo format desribed in the design document and writes a compatible repo format which can also be read by restic.

ConnectorX - Fastest library to load data from DB to DataFrames in Rust and Python
ConnectorX - Fastest library to load data from DB to DataFrames in Rust and Python

ConnectorX enables you to load data from databases into Python in the fastest and most memory efficient way.

Perhaps the fastest and most memory efficient way to pull data from PostgreSQL into pandas and numpy. 🚀

flaco Perhaps the fastest and most memory efficient way to pull data from PostgreSQL into pandas and numpy. 🚀 Have a gander at the initial benchmarks

Rayon: A data parallelism library for Rust

Rayon Rayon is a data-parallelism library for Rust. It is extremely lightweight and makes it easy to convert a sequential computation into a parallel

DataFrame / Series data processing in Rust

black-jack While PRs are welcome, the approach taken only allows for concrete types (String, f64, i64, ...) I'm not sure this is the way to go. I want

An example repository on how to start building graph applications on streaming data. Just clone and start building 💻 💪
An example repository on how to start building graph applications on streaming data. Just clone and start building 💻 💪

An example repository on how to start building graph applications on streaming data. Just clone and start building 💻 💪

Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing

Apache Arrow Powering In-Memory Analytics Apache Arrow is a development platform for in-memory analytics. It contains a set of technologies that enabl

Owner
Syed Vilayat Ali Rizvi
Rust fanatic, tech aficionado, never satisfied
Syed Vilayat Ali Rizvi
A dataframe manipulation tool inspired by dplyr and powered by polars.

dply is a command line tool for viewing, querying, and writing csv and parquet files, inspired by dplyr and powered by polars. Usage overview A dply p

null 14 May 29, 2023
AppFlowy is an open-source alternative to Notion. You are in charge of your data and customizations

AppFlowy is an open-source alternative to Notion. You are in charge of your data and customizations. Built with Flutter and Rust.

null 30.7k Jan 7, 2023
📊 Cube.js — Open-Source Analytics API for Building Data Apps

?? Cube.js — Open-Source Analytics API for Building Data Apps

Cube.js 14.4k Jan 8, 2023
A Modern Real-Time Data Processing & Analytics DBMS with Cloud-Native Architecture, built to make the Data Cloud easy

A Modern Real-Time Data Processing & Analytics DBMS with Cloud-Native Architecture, built to make the Data Cloud easy

Datafuse Labs 5k Jan 9, 2023
Analysis of Canadian Federal Elections Data

Canadian Federal Elections election is a small Rust program for processing vote data from Canadian Federal Elections. After building, see election --h

Colin Woodbury 2 Sep 26, 2021
Bytewax is an open source Python framework for building highly scalable dataflows.

Bytewax Bytewax is an open source Python framework for building highly scalable dataflows. Bytewax uses PyO3 to provide Python bindings to the Timely

Bytewax 289 Jan 6, 2023
Yet Another Technical Analysis library [for Rust]

YATA Yet Another Technical Analysis library YaTa implements most common technical analysis methods and indicators. It also provides you an interface t

Dmitry 197 Dec 29, 2022
Fill Apache Arrow record batches from an ODBC data source in Rust.

arrow-odbc Fill Apache Arrow arrays from ODBC data sources. This crate is build on top of the arrow and odbc-api crate and enables you to read the dat

Markus Klein 21 Dec 27, 2022
Provides a way to use enums to describe and execute ordered data pipelines. 🦀🐾

enum_pipline Provides a way to use enums to describe and execute ordered data pipelines. ?? ?? I needed a succinct way to describe 2d pixel map operat

Ben Greenier 0 Oct 29, 2021
New generation decentralized data warehouse and streaming data pipeline

World's first decentralized real-time data warehouse, on your laptop Docs | Demo | Tutorials | Examples | FAQ | Chat Get Started Watch this introducto

kamu 184 Dec 22, 2022