User guide¶
Each chapter takes one kind of work and shows it in code that runs: every block is a Go
example the test suite runs, and the output under it is what it printed. The
examples read the quick start's sales.csv, eight
orders, its dates read as dates, unless a chapter says otherwise:
func sales() *ursus.LazyFrame {
return ursus.ScanCSV("testdata/sales.csv",
ursus.WithSchemaOverrides(map[string]ursus.DataType{"date": ursus.Date}))
}
-
Columns by name, pattern or type; rows by predicates; sorting, top-k, unique rows and slices.
-
Aggregates per group and over the whole frame, conditional aggregates, lists per group, and summaries.
-
An aggregate beside every row, cumulative and shifted values, ranks, rolling windows by rows and by time, and exponential averages.
-
Every join kind, keys, suffixes and validation, as-of joins, joins on a condition, and filters by another frame.
-
Pivot and unpivot, explode and unnest, concatenating frames, and transpose.
-
Cleaning, matching with regular expressions, extracting, replacing, splitting, and parsing numbers and dates.
-
List columns and the questions to ask of them, expressions over their elements, sets, and struct fields.
-
Parsing, calendar arithmetic, time zones, ranges, and groups by day, week or a rolling period.
-
Counting nulls, filling them from a value or the neighbours, coalescing, interpolating, and dropping.
-
Frames from Go slices, typed columns as Series, rows into structs, and streaming an answer a batch at a time.
-
Go functions inside a query, a value or a batch at a time, with nulls, errors and concurrency.
-
Scans and their options, globs, object storage, pushdown into Parquet, sinks, and Arrow in and out.