IDataFrame Interface

This interface represents an in-memory, tabular data structure composed of named columns and row values.

For information about DataFrame Methods, including NameSpaces, basic functions, and examples, see DataFrame Methods.

Properties and Indexer

Property Type Description
Columns IEnumerable<IDataFrameColumn> Enumerable of column descriptors/objects in column ordinal order (zero-based count).
ColumnsCount int Number of columns.
Name string? Optional name/identifier for the DataFrame.
RowCount int Number of rows in the frame. This should be preferred to .Rows.Count, since the latter will force looping through all rows, affecting performance.
Rows IEnumerable<object[]> Enumerable of rows; each row is represented as an array of objects in column order (zero-based count).
this[int columnIndex] object Returns a representative value for the given column index.

Methods

Property Type Description
AddColumn(IDataFrameColumn dataFrameColumn) int Adds a column; returns the column ordinal of the newly added column.
AddColumn(IDataFrameColumn dataFrameColumn, bool bypassColumnShrink) int Adds a column with an option to bypass any column-capacity shrinking/resizing logic. Returns the column ordinal.
AddRow(params object[] items) void Appends a single row. Items should match the number and order of Columns.
AddRowsFromColumnRowArrayAsync(object[][] items) Task Asynchronously appends multiple rows from a jagged array. Expected shape is a 2D array, where outer (first) keys specify columns and inner (second) keys specify rows.
Append(IDataFrame dataFrame) void Appends all rows/columns from another IDataFrame into this one.
ConvertFrame(DataFrameConversionOptions options) IDataFrame[] Convert the dataframe to a new dataframe instance, which will contain only records that satisfy the specified options.
GetAllColumnsNames() string[] Returns an array of all column names in ordinal order.
GetColumn(int columnOrdinal) IDataFrameColumn Returns the IDataFrameColumn at the specified zero-based ordinal.
GetColumnOrdinal(string name) int Returns the zero-based ordinal of the column with the specified name.
GetParquetByteArrayAsync() Task<byte[]?> Serializes to Parquet and returns the bytes, or null if serialization is not possible or fails.
GetParquetStreamAsync() Task<MemoryStream> Serializes the frame to Parquet format and returns a MemoryStream containing the content.
GetRowArray(int rowIndex) object[] Returns the row at rowIndex as an object[] in column order.
GetValue<T>(int columnOrdinal, int rowIndex) T Returns the value at the specified column and row, cast to T. May throw an invalid cast exception if the stored value cannot be converted to T.
GetValueAsObject(int columnOrdinal, int rowIndex) object Returns the value as object.
Optimize() void Triggers optimizations (e.g., compacting storage, trimming buffers, compressing sparse data). Use to reduce memory footprint or improve subsequent read performance. Use after creating the object manually.
Peek(int maxRecords = 1000) string Produces a human-readable preview (string) of up to maxRecords rows. Useful for debugging/logging.
Split(int maxRowsPerDataFrame) IDataFrame[] Splits the frame into multiple IDataFrame segments, each with up to maxRowsPerDataFrame rows. Useful for batching/parallel processing.
ToDataSet() DataSet Converts the frame to a DataSet.
ToDataTable() DataTable Converts to a single DataTable.

ToDataTable(SaveDataFrameOptions options = null, int maxRows = 0)

DataTable Converts to a single DataTable, after reshaping the frame according to options and maxRows.
ToRowsArray() object[][] Returns all rows as a 2D jagged array (object[][]) — each inner array is a row.
ToTableView TableView Convert the dataframe to a TableView.
ToXFDataTable(this DataFrame dataFrame, DataFrameConversionOptions options) XFDataTable Converts a DataFrame controlling conversion to exclude columns, rename columns, override column data types, mark primary/read-only columns, limit rows, set start-row, and apply per-column value transformations. If options is null, a default DataFrameConversionOptions is created and TableName defaults to the DataFrame name or "DataFrame".
ToXFDataTable(this DataFrame dataFrame, Dictionary<string,string> columnMappings, string tableName = null) XFDataTable Converts a DataFrame with explicit column name mapping. columnMappings must be a map of source column-name -> XF column-name. If a source name is not present, the original name is used. Value types default to String if not specified.
ToXFDataTable(this IDataFrame dataFrame, string tableName = null) XFDataTable Converts a DataFrame to an XFDataTable using default options. Table name defaults to "DataFrame" if not provided.

DataFrameConversionOptions

This class is a wrapper to specify options for converting DataFrames.

Property Type Description
ColumnNameMappings Dictionary<string,string> Rename column names from source keys to values.
DataTypeMappings Dictionary<string,XFDataType> Override XF data types in converted output.
ExcludeColumns HashSet<string> Columns to exclude.
MaxRows int Maximum amounts of rows to convert. Defaults to 0, which means "all rows".
PrimaryKeyColumns HashSet<string> Columns flagged as primary keys.
ReadOnlyColumns HashSet<string> Columns flagged read-only.
StartRow int Convert rows starting from the rows at the specified position. Defaults to 0.
TableName string Custom table name (default string.Empty; conversion will choose the DataFrame name or "DataFrame" if left empty).
ValueTransformations Dictionary<string, Func<T, TResult>> Per-column transform functions. The passed function will receive a value of type T and output a value of type TResult for each element in the column specified as key.

IDataFrameColumn

This interface represents a single named column in an in-memory DataFrame. It is typically accessed through the collection.

Columns found on IDataFrame instances.

Property Type Description
GetValueAsObject(int rowIndex) object Returns the raw object stored at the specified zero-based row index, or null if missing or invalid.
Length int Number of values in the column (may be less than the parent frame's RowCount for sparse or streaming implementations).
Name string Column name (used as the key when converting to other tabular formats).
Type Type CLR type representing the stored values (nullable wrappers are usually unwrapped by callers).