Data Frames
The DataFrame<R, C> class represents typed-indexed tabular data. A data frame has a typed row index, a typed column index, and one vector for each column. Columns can have different element types, while all columns share the same row space.
Data frames can be inspected through schema snapshots, addressed through reusable column selectors, annotated with dataframe-owned column roles, and summarized with aggregation descriptors. These features preserve typed row and column keys while giving common dataframe workflows a concise API.
Overview
In this section:
Constructing data frames Create data frames from vectors, matrices, objects, and external data sources.
Basic Operations on Data Frames Access rows and columns, select or remove columns, and work with row and column indexes.
Schema, Selectors, and Column Roles Inspect dataframe schemas, select columns by metadata, and assign semantic column roles.
Aggregating data frames Aggregate data frames with descriptor-based requests and existing aggregator groups.
Vectors and matrices as data frames Understand how vectors and matrices participate in dataframe workflows.
Modern dataframe workflow
A schema snapshot returned by GetSchema() describes the current column keys, ordinals, element types, and metadata. Schema objects are read-only inspection objects; they do not mutate dataframe metadata.
A ColumnSelector is a reusable column-selection request. Selectors resolve against schema metadata, not vector values, and return distinct columns in schema order. They can select by explicit key, element type, categorical metadata, role, or predicate.
Column roles are dataframe-owned metadata. A column can be marked as a feature, target, grouping key, weight, identifier, or another supported role without changing the underlying vector. Role metadata follows columns through operations that preserve column identity.
Aggregation descriptors created by the static Aggregation class describe aggregation requests. The descriptor API is the modern dataframe aggregation workflow; older aggregator-group APIs remain available for lower-level or compatibility scenarios.