Skip to content

About

Flexible and powerful data analysis and manipulation library for .NET, providing labeled data structures, data transformation functions, and much more.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

81 Commits

Folders and files

Repository files navigation

Runiq.Data

Tests Version License Target Framework

Runiq.Data is a DataFrame and data processing library built for .NET developers.

It lets you create, transform, analyze, reshape, import, and export structured data using C# and the .NET ecosystem.

Why Runiq.Data?

  • Process structured data without leaving C# and .NET
  • Create, filter, sort, group, aggregate, join, pivot, and reshape DataFrames
  • Use ranking, navigation, partition, running, and moving window calculations
  • Read and write CSV, Excel, and JSON files
  • Read SQL query results and append DataFrame rows to existing SQL tables

Installation

NuGet CLI:

dotnet add package Runiq.Data

Package Manager Console:

Install-Package Runiq.Data

Quick Start

using Runiq.Data;

var data = DataFrame.Create(new
{
    Department = new[] { "Engineering", "Sales", "Engineering" },
    Revenue = new[] { 120000, 80000, 150000 }
});

var result = data
    .GroupBy("Department")
    .Aggregate(aggregation => aggregation
        .For("Revenue")
        .Sum()
        .Average());

Console.WriteLine(result);

What you can build

Shape and transform data

Create DataFrames, add or remove rows and columns, filter, sort, join, copy, pivot, and unpivot structured data.

Group and analyze

Use Sum, Average, Min, Max, GroupBy, grouped aggregations, PivotTable, and distinct operations.

Calculate across rows

Use RowNumber, Rank, DenseRank, Lag, Lead, FirstValue, LastValue, partition aggregations, running calculations, and moving calculations.

Connect your data

Read and write CSV, Excel, and JSON files. Read SQL query results and append DataFrame rows to existing SQL tables.

Short examples

Pivot

var result = data.Pivot(
    index: "Department",
    columns: "Quarter",
    values: "Revenue");

Window function

var rank = data
    .Window()
    .PartitionBy("Department")
    .OrderByDescending("Revenue")
    .Rank();

data.Columns.Add("Rank", rank);

SQL

var data = DataFrame.ReadSql(connection, query);

data.WriteSql(
    connection,
    "Reporting.MonthlyRevenue");

Documentation

Read the full documentation at runiq.net/docs/data.

Samples

  • CSV - Read, write, and round-trip CSV files
  • Excel - Read and write .xlsx workbooks
  • JSON - Write, read, and format JSON data
  • SQL - Read SQL query results and append rows with SQLite
  • Pivoting - Pivot, PivotTable, and Unpivot
  • Windowing - Ranking, navigation, partition, running, and moving calculations

SQL Support

SQL support uses provider-independent ADO.NET APIs. You can read query results from a DbConnection and command text, read from a DbCommand, and append DataFrame rows to an existing table through a DbConnection.

SQL behavior is validated with SQLite, SQL Server, and PostgreSQL. SQL writing appends to existing tables; it does not create, replace, upsert, or bulk insert tables.

Validation

  • CI runs through the repository GitHub Actions workflow
  • Full solution test suite passes
  • Zero compiler and analyzer warnings
  • SQL behavior validated with SQLite, SQL Server, and PostgreSQL

Development

dotnet build Runiq.Data.sln
dotnet test Runiq.Data.sln

License

Runiq.Data is licensed under the MIT License.

About

Flexible and powerful data analysis and manipulation library for .NET, providing labeled data structures, data transformation functions, and much more.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages