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.
- 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
NuGet CLI:
dotnet add package Runiq.DataPackage Manager Console:
Install-Package Runiq.Datausing 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);Create DataFrames, add or remove rows and columns, filter, sort, join, copy, pivot, and unpivot structured data.
Use Sum, Average, Min, Max, GroupBy, grouped aggregations, PivotTable, and distinct operations.
Use RowNumber, Rank, DenseRank, Lag, Lead, FirstValue, LastValue, partition aggregations, running calculations, and moving calculations.
Read and write CSV, Excel, and JSON files. Read SQL query results and append DataFrame rows to existing SQL tables.
var result = data.Pivot(
index: "Department",
columns: "Quarter",
values: "Revenue");var rank = data
.Window()
.PartitionBy("Department")
.OrderByDescending("Revenue")
.Rank();
data.Columns.Add("Rank", rank);var data = DataFrame.ReadSql(connection, query);
data.WriteSql(
connection,
"Reporting.MonthlyRevenue");Read the full documentation at runiq.net/docs/data.
- CSV - Read, write, and round-trip CSV files
- Excel - Read and write
.xlsxworkbooks - 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 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.
- 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
dotnet build Runiq.Data.sln
dotnet test Runiq.Data.slnRuniq.Data is licensed under the MIT License.