Skip to main content

DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:48

DataFrame is a high-performance, easy to use tabular structure with strongly-typed columns of different types.

In the API, the terms "Table" and "DataFrame" are used interchangeably.

Usage samples: https://public.datagrok.ai/js/samples/data-frame/modification/manipulate Usage details: https://datagrok.ai/help/develop/advanced/data-frame Implementation details: https://datagrok.ai/help/develop/admin/architecture#in-memory-database

Constructors

Constructor

new DataFrame(dart): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:64

Parameters

ParameterType
dartany

Returns

DataFrame

Properties

PropertyModifierTypeDescriptionDefined in
_metapublicDataFrameMetaHelper | undefined-js-api/src/dataframe/data-frame.ts:60
columnspublicColumnListColumns of the table.js-api/src/dataframe/data-frame.ts:51
dartreadonlyany-js-api/src/dataframe/data-frame.ts:49
filterpublicBitSetFilter mask: rows currently passing all filters.js-api/src/dataframe/data-frame.ts:55
rowspublicRowListRows of the table.js-api/src/dataframe/data-frame.ts:53
tagspublicMapBag<string>Metadata as string key-value pairs; persisted with the table.js-api/src/dataframe/data-frame.ts:59
temppublicanyAuxiliary data that is not persisted (a MapBag: indexed access plus the map methods; typed any so it can be cast to a package's own shape).js-api/src/dataframe/data-frame.ts:57

Accessors

currentCell

Get Signature

get currentCell(): Cell

Defined in: js-api/src/dataframe/data-frame.ts:328

Current cell. Sample: https://public.datagrok.ai/js/samples/data-frame/events/current-elements

Returns

Cell

Set Signature

set currentCell(cell): void

Defined in: js-api/src/dataframe/data-frame.ts:334

Current cell. Sample: https://public.datagrok.ai/js/samples/data-frame/events/current-elements

Parameters
ParameterType
cellCell
Returns

void


currentCol

Get Signature

get currentCol(): Column

Defined in: js-api/src/dataframe/data-frame.ts:316

Current column. Sample: https://public.datagrok.ai/js/samples/data-frame/events/current-elements

Returns

Column

Set Signature

set currentCol(col): void

Defined in: js-api/src/dataframe/data-frame.ts:322

Current column. Sample: https://public.datagrok.ai/js/samples/data-frame/events/current-elements

Parameters
ParameterType
colColumn
Returns

void


currentRow

Get Signature

get currentRow(): Row

Defined in: js-api/src/dataframe/data-frame.ts:303

Current row. Sample: https://public.datagrok.ai/js/samples/data-frame/events/current-elements

Returns

Row

Set Signature

set currentRow(row): void

Defined in: js-api/src/dataframe/data-frame.ts:304

Parameters
ParameterType
rowRow
Returns

void


currentRowIdx

Get Signature

get currentRowIdx(): number

Defined in: js-api/src/dataframe/data-frame.ts:307

Index of the current row.

Returns

number

Set Signature

set currentRowIdx(idx): void

Defined in: js-api/src/dataframe/data-frame.ts:308

Parameters
ParameterType
idxnumber
Returns

void


dialogs

Get Signature

get dialogs(): DataFrameDialogHelper

Defined in: js-api/src/dataframe/data-frame.ts:154

Standard dialogs for this table.

Returns

DataFrameDialogHelper


id

Get Signature

get id(): string

Defined in: js-api/src/dataframe/data-frame.ts:508

Id of the dataframe.

Returns

string

Set Signature

set id(id): void

Defined in: js-api/src/dataframe/data-frame.ts:512

Parameters
ParameterType
idstring
Returns

void


meta

Get Signature

get meta(): DataFrameMetaHelper

Defined in: js-api/src/dataframe/data-frame.ts:140

A helper to conveniently access certain metadata properties stored in tags

Returns

DataFrameMetaHelper


mouseOverRowIdx

Get Signature

get mouseOverRowIdx(): number

Defined in: js-api/src/dataframe/data-frame.ts:311

Index of the mouse-over row.

Returns

number

Set Signature

set mouseOverRowIdx(idx): void

Defined in: js-api/src/dataframe/data-frame.ts:312

Parameters
ParameterType
idxnumber
Returns

void


name

Get Signature

get name(): string

Defined in: js-api/src/dataframe/data-frame.ts:171

Name of the dataframe.

Returns

string

Set Signature

set name(s): void

Defined in: js-api/src/dataframe/data-frame.ts:172

Parameters
ParameterType
sstring
Returns

void


onColumnNameChanged

Get Signature

get onColumnNameChanged(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:453

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<any>


onColumnsAdded

Get Signature

get onColumnsAdded(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:462

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<any>


onColumnsChanged

Get Signature

get onColumnsChanged(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:459

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<any>


onColumnSelectionChanged

Get Signature

get onColumnSelectionChanged(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:456

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<any>


onColumnsRemoved

Get Signature

get onColumnsRemoved(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:465

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<any>


onCurrentCellChanged

Get Signature

get onCurrentCellChanged(): Observable<EventData<CellChangeArgs>>

Defined in: js-api/src/dataframe/data-frame.ts:441

Sample: https://public.datagrok.ai/js/samples/data-frame/events/current-elements

Returns

Observable<EventData<CellChangeArgs>>


onCurrentColChanged

Get Signature

get onCurrentColChanged(): Observable<EventData<ColumnChangeArgs>>

Defined in: js-api/src/dataframe/data-frame.ts:435

Sample: https://public.datagrok.ai/js/samples/data-frame/events/current-elements

Returns

Observable<EventData<ColumnChangeArgs>>


onCurrentRowChanged

Get Signature

get onCurrentRowChanged(): Observable<EventData<RowChangeArgs>>

Defined in: js-api/src/dataframe/data-frame.ts:429

Sample: https://public.datagrok.ai/js/samples/data-frame/events/current-elements

Returns

Observable<EventData<RowChangeArgs>>


onDataChanged

Get Signature

get onDataChanged(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:486

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<any>


onFilterChanged

Get Signature

get onFilterChanged(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:495

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<any>


onMetadataChanged

Get Signature

get onMetadataChanged(): Observable<EventData<MapChangeArgs<string, string>>>

Defined in: js-api/src/dataframe/data-frame.ts:450

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<EventData<MapChangeArgs<string, string>>>


onMouseOverColChanged

Get Signature

get onMouseOverColChanged(): Observable<EventData<ColumnChangeArgs>>

Defined in: js-api/src/dataframe/data-frame.ts:438

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<EventData<ColumnChangeArgs>>


onMouseOverRowChanged

Get Signature

get onMouseOverRowChanged(): Observable<EventData<RowChangeArgs>>

Defined in: js-api/src/dataframe/data-frame.ts:432

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<EventData<RowChangeArgs>>


onMouseOverRowGroupChanged

Get Signature

get onMouseOverRowGroupChanged(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:444

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<any>


onNameChanged

Get Signature

get onNameChanged(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:447

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<any>


onRowsAdded

Get Signature

get onRowsAdded(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:468

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<any>


onRowsFiltered

Get Signature

get onRowsFiltered(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:474

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<any>


onRowsFiltering

Get Signature

get onRowsFiltering(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:477

Returns

Observable<any>


onRowsRemoved

Get Signature

get onRowsRemoved(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:471

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<any>


onSelectionChanged

Get Signature

get onSelectionChanged(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:492

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<any>


onSemanticTypeDetected

Get Signature

get onSemanticTypeDetected(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:483

Sample: https://public.datagrok.ai/js/samples/data-frame/advanced/semantic-type-detection

Returns

Observable<any>


onSemanticTypeDetecting

Get Signature

get onSemanticTypeDetecting(): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:480

Sample: https://public.datagrok.ai/js/samples/data-frame/advanced/semantic-type-detection

Returns

Observable<any>


onValuesChanged

Get Signature

get onValuesChanged(): Observable<EventData<CellRangeArgs>>

Defined in: js-api/src/dataframe/data-frame.ts:426

Sample: https://public.datagrok.ai/js/samples/data-frame/events/events

Returns

Observable<EventData<CellRangeArgs>>


plot

Get Signature

get plot(): DataFramePlotHelper

Defined in: js-api/src/dataframe/data-frame.ts:147

A helper for creating plots for this dataframe

Returns

DataFramePlotHelper


rowCount

Get Signature

get rowCount(): number

Defined in: js-api/src/dataframe/data-frame.ts:161

Returns number of rows in the table.

Returns

number


selection

Get Signature

get selection(): BitSet

Defined in: js-api/src/dataframe/data-frame.ts:166

Returns a BitSet with selected rows.

Returns

BitSet

Methods

_event()

_event(event): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:416

Parameters

ParameterType
eventstring

Returns

Observable<any>


_exportReopen()

_exportReopen(): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:526

Returns

DataFrame


append()

append(t2, inPlace?, columnsToAppend?): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:407

Appends two tables ('union' in SQL).

Parameters

ParameterTypeDefault valueDescription
t2DataFrameundefined-
inPlacebooleanfalsewhether to create a new table, or modify 'this' one.
columnsToAppendstring[] | nullnull-

Returns

DataFrame


appendMerge()

appendMerge(t): void

Defined in: js-api/src/dataframe/data-frame.ts:412

Appends the rows of [t] in place, adding its missing columns.

Parameters

ParameterType
tDataFrame

Returns

void


cell()

cell(idx, name): Cell

Defined in: js-api/src/dataframe/data-frame.ts:225

Returns a Cell with the specified row and column.

Parameters

ParameterTypeDescription
idxnumberRow index.
namestringColumn name.

Returns

Cell


changeColumnsType()

changeColumnsType(columns, newType, format?): Column<any, any>[]

Defined in: js-api/src/dataframe/data-frame.ts:351

Converts columns with the specified names to [newType], removes the original columns from the dataframe and adds the new columns to it.

Parameters

ParameterTypeDefault valueDescription
columns(string | Column<any, any>)[]undefined-
newType"string" | "bigint" | "object" | "bool" | "int" | "double" | "byte_array" | "datetime" | "qnum" | "dataframe"undefined-
formatstring | nullnullnumber format

Returns

Column<any, any>[]

See

COLUMN_TYPE


changeColumnType()

changeColumnType(column, newType, format?): Column

Defined in: js-api/src/dataframe/data-frame.ts:343

Converts a column with the specified name to [newType], removes the original column from its dataframe and adds the new column to it. Single-column form of changeColumnsType.

Parameters

ParameterTypeDefault valueDescription
columnstring | Column<any, any>undefined-
newType"string" | "bigint" | "object" | "bool" | "int" | "double" | "byte_array" | "datetime" | "qnum" | "dataframe"undefined-
formatstring | nullnullnumber format

Returns

Column

See

COLUMN_TYPE


clone()

Call Signature

clone(options?): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:294

Creates a new dataframe from the specified rows and columns (all, when omitted).

Parameters
ParameterType
options?CloneOptions
Returns

DataFrame

Call Signature

clone(rowMask?, columnIds?, saveSelection?, saveTags?): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:295

Creates a new dataframe from the specified rows and columns (all, when omitted).

Parameters
ParameterTypeDescription
rowMask?BitSet | null-
columnIds?string[] | null-
saveSelection?booleanWhether the selection is copied.
saveTags?booleanWhether the tags are copied (default).
Returns

DataFrame


col()

col(nameOrIndex): Column<any, any> | null

Defined in: js-api/src/dataframe/data-frame.ts:213

Returns a Column with the specified name.

Parameters

ParameterTypeDescription
nameOrIndexstring | numberColumn name.

Returns

Column<any, any> | null


fireValuesChanged()

fireValuesChanged(): void

Defined in: js-api/src/dataframe/data-frame.ts:498

Fires onValuesChanged after values were set without notification.

Returns

void


get()

get(name, idx): any

Defined in: js-api/src/dataframe/data-frame.ts:199

Returns idx-th value of the specified columns.

Parameters

ParameterTypeDescription
namestringColumn name.
idxnumberRow index.

Returns

any


getCol()

getCol(name): Column

Defined in: js-api/src/dataframe/data-frame.ts:232

Same as col, but throws Error if column is not found

Parameters

ParameterTypeDescription
namestringColumn name.

Returns

Column


getDensity()

getDensity(xBins, yBins, xColName, yColName): Int32Array

Defined in: js-api/src/dataframe/data-frame.ts:517

Point density of the two columns on an [xBins] × [yBins] grid.

Parameters

ParameterType
xBinsnumber
yBinsnumber
xColNamestring
yColNamestring

Returns

Int32Array


getSortedOrder()

getSortedOrder(sortByColumnIds, sortOrders?, rowMask?): Int32Array

Defined in: js-api/src/dataframe/data-frame.ts:362

Returns [Int32Array] that contains sorted order, or null for unsorted (original) order. See also Column.getSortedOrder. Sample: https://public.datagrok.ai/js/samples/data-frame/sorting/sorted-order

Parameters

ParameterTypeDefault valueDescription
sortByColumnIdsColumnId[]undefinedCollection of [Column]s to use as keys for sorting.
sortOrdersboolean[] | nullnullList of sort orders for [sortByCols]. True == ascending.
rowMaskBitSet | nullnullMask of the rows to sort. Result array will contain [rowIndexes.length] elements.

Returns

Int32Array


getTableInfo()

getTableInfo(): TableInfo

Defined in: js-api/src/dataframe/data-frame.ts:522

Server-side metadata of this table.

Returns

TableInfo


getTag()

getTag(tag): string | null

Defined in: js-api/src/dataframe/data-frame.ts:175

Returns the value of the specified tag, or null if it does not exist.

Parameters

ParameterType
tagstring

Returns

string | null


groupBy()

groupBy(columnNames?): GroupByBuilder

Defined in: js-api/src/dataframe/data-frame.ts:368

Begins building a query, using the specified columns as keys.

Parameters

ParameterTypeDefault valueDescription
columnNamesstring[][]Names of the columns to be used as keys.

Returns

GroupByBuilder


join()

Call Signature

join(t2, options): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:392

Merges two tables by the specified key columns.

Parameters
ParameterTypeDescription
t2DataFramea table to join
optionsJoinOptions-
Returns

DataFrame

Call Signature

join(t2, keyColumns1, keyColumns2, valueColumns1?, valueColumns2?, joinType?, inPlace?): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:393

Merges two tables by the specified key columns.

Parameters
ParameterTypeDescription
t2DataFramea table to join
keyColumns1string[]key column names from the first table
keyColumns2string[]key column names from the second table
valueColumns1?string[] | nullcolumn names to copy from the first table. Pass null to add all columns, an empty array [] to not add any columns, or an array with column names to add them specifically.
valueColumns2?string[] | nullcolumn names to copy from the second table
joinType?"inner" | "outer" | "left" | "right"inner, outer, left, or right. See [DG.JOIN_TYPE]
inPlace?booleanmerges content in-place into the source table Sample: https://public.datagrok.ai/js/samples/data-frame/join-link/join-tables
Returns

DataFrame


onEvent()

onEvent(event): Observable<any>

Defined in: js-api/src/dataframe/data-frame.ts:421

Observes the table event with the specified id.

Parameters

ParameterType
eventstring

Returns

Observable<any>


resetFilter()

resetFilter(): void

Defined in: js-api/src/dataframe/data-frame.ts:400

Clears all active filters and unsets the filter bitset.

Returns

void


row()

row(rowIndex): Row

Defined in: js-api/src/dataframe/data-frame.ts:192

Returns i-th row. NOTE: Do not use in performance-critical paths, consider accessing values via the Column instance.

Parameters

ParameterType
rowIndexnumber

Returns

Row


set()

set(name, idx, value): void

Defined in: js-api/src/dataframe/data-frame.ts:207

Sets idx-th value of the specified columns.

Parameters

ParameterTypeDescription
namestringColumn name.
idxnumberRow index.
valueanyValue.

Returns

void


setTag()

setTag(tag, value): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:182

Sets a tag to the specified value.

Parameters

ParameterTypeDescription
tagstringKey.
valuestringValue.

Returns

DataFrame


toArrow()

toArrow(): Uint8Array

Defined in: js-api/src/dataframe/data-frame.ts:285

Exports dataframe to Arrow IPC format.

Returns

Uint8Array


toByteArray()

toByteArray(): Uint8Array

Defined in: js-api/src/dataframe/data-frame.ts:274

Exports dataframe to binary

Returns

Uint8Array


toCsv()

toCsv(options?, grid?): string

Defined in: js-api/src/dataframe/data-frame.ts:242

Exports the content to comma-separated-values format.

Parameters

ParameterTypeDescription
options?CsvExportOptionsoptions for the export
grid?Gridif specified, takes visible columns, column and row order from the grid.

Returns

string


toCsvAsync()

toCsvAsync(options?, grid?): Promise<string>

Defined in: js-api/src/dataframe/data-frame.ts:255

Same as toCsvEx: the asynchronous export, which also converts molblock columns to SMILES when requested.

Parameters

ParameterType
options?CsvExportOptions
grid?Grid

Returns

Promise<string>


toCsvEx()

toCsvEx(options?, grid?): Promise<string>

Defined in: js-api/src/dataframe/data-frame.ts:250

Exports the content to comma-separated-values format asynchronously with converting the molblock columns to smiles if specified.

Parameters

ParameterTypeDescription
options?CsvExportOptionsoptions for the export
grid?Gridif specified, takes visible columns, column and row order from the grid.

Returns

Promise<string>


toJson()

toJson(): any[]

Defined in: js-api/src/dataframe/data-frame.ts:262

Converts the contents to array of objects, with column names as keys. Keep in mind that the internal DataFrame format is far more efficient than JSON, so use it only as a convenience for working with relatively small datasets.

Returns

any[]


toParquet()

toParquet(compress?): Uint8Array

Defined in: js-api/src/dataframe/data-frame.ts:280

Exports dataframe to Parquet format.

Parameters

ParameterTypeDefault valueDescription
compressbooleanfalseIf true, applies GZIP compression.

Returns

Uint8Array


toString()

toString(): string

Defined in: js-api/src/dataframe/data-frame.ts:503

Returns

string


unpivot()

unpivot(copyColumnNames, mergeColumnNames, categoryColumnName?, valueColumnName?): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:377

Unpivots the table (converts from 'wide' representation with many columns to 'tall and skinny').

Parameters

ParameterTypeDefault valueDescription
copyColumnNamesstring[]undefinedcolumns to copy
mergeColumnNamesstring[]undefinedcolumns to merge. Column name will become a value in the [categoryColumnName] column, and column value will become a value in the [valueColumnName] column.
categoryColumnNamestring'Category'-
valueColumnNamestring'Value'-

Returns

DataFrame


create()

static create(rowCount?, name?): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:74

Creates a DataFrame with the specified number of rows and no columns.

Parameters

ParameterTypeDefault value
rowCountnumber0
name?stringundefined

Returns

DataFrame


fromByteArray()

static fromByteArray(byteArray): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:82

Deserializes a table from its binary (d42) form; see toByteArray.

Parameters

ParameterType
byteArrayUint8Array

Returns

DataFrame


fromColumns()

static fromColumns(columns): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:87

Creates a DataFrame from the specified columns. All columns should be of the same length.

Parameters

ParameterType
columnsColumn<any, any>[]

Returns

DataFrame


fromCsv()

static fromCsv(csv, options?): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:128

Constructs DataFrame from a comma-separated values string

Parameters

ParameterTypeDescription
csvstringThe content of the comma-separated values file. https://public.datagrok.ai/js/samples/data-frame/construction/create-from-csv
options?CsvImportOptions-

Returns

DataFrame


fromJson()

static fromJson(json): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:135

Constructs DataFrame from the specified JSON string.

Parameters

ParameterTypeDescription
jsonstringJSON document. https://public.datagrok.ai/js/samples/data-frame/construction/create-from-json

Returns

DataFrame


fromObjects()

static fromObjects(list): DataFrame | undefined

Defined in: js-api/src/dataframe/data-frame.ts:108

Creates a [DataFrame] from a list of objects by using object keys as column names, and object values as values.

NOTE: The implementation converts the values to strings first and then parses it, so do not use this method in performance-critical paths (for instance when the number of objects could be big), consider using fromColumns instead.

Parameters

ParameterTypeDescription
listobject[]List of objects. https://public.datagrok.ai/js/samples/data-frame/construction/create-from-objects

Returns

DataFrame | undefined


fromProperties()

static fromProperties(properties, rows?): DataFrame

Defined in: js-api/src/dataframe/data-frame.ts:92

Creates a DataFrame from the specified properties with the specified row count.

Parameters

ParameterTypeDefault value
propertiesProperty[]undefined
rowsnumber0

Returns

DataFrame