Walrus 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Walrus --version 1.0.0                
NuGet\Install-Package Walrus -Version 1.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Walrus" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Walrus --version 1.0.0                
#r "nuget: Walrus, 1.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Walrus as a Cake Addin
#addin nuget:?package=Walrus&version=1.0.0

// Install Walrus as a Cake Tool
#tool nuget:?package=Walrus&version=1.0.0                

Walrus

Walrus is a lightweight F# library for working with tabular data. It's similar to Deedle, but much simpler to use.

Tables, rows, and columns

A Walrus Table is a sequence of Rows that can be accessed by column name. It's also possible to access an entire column of strongly-typed values at once.

Example

Here's Deedle's Titanic survivor analysis in Walrus:

let init =
    Table.loadCsvFile "titanic.csv"            // load Titanic data from a CSV file
        |> Table.pivot ["Pclass"] "Survived"   // count the # of survivors in each passenger class
        |> Table.sortRowsBy ["Pclass"]         // sort the resulting pivot table's rows
        |> Table.renameColumns                 // give each column a meaningful name
            [ "Pclass"; "Died"; "Survived" ]
let byClass =                                  // add a column for the # of passengers in each class
    init?Died + init?Survived
        |> Table.ofColumn "Total"
        |> Table.unionColumns init
Table.ofColumns                                // compute percentages instead of raw counts
    [
        "Passenger class", byClass?Pclass
        "Died (%)", round (byClass?Died / byClass?Total * 100.)
        "Survived (%)", round (byClass?Survived / byClass?Total * 100.)
    ] |> Table.print                           // print the result

Output:

 | Passenger class | Died (%) | Survived (%) |
 | --------------- | -------- | ------------ |
 |               1 |       37 |           63 |
 |               2 |       53 |           47 |
 |               3 |       76 |           24 |
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.3.0 61 11/6/2024
1.2.0 82 11/4/2024
1.1.1 135 12/28/2023
1.1.0 122 12/28/2023
1.0.0 125 12/22/2023