Deedle


Frame

Frame module comment

Table of contents

Accessing frame data and lookup 

basics

Functions and values

Function or valueDescription
cols frame
Signature:frame:Frame<'R,'C> -> ColumnSeries<'R,'C>
Type parameters: 'R, 'C

Returns the columns of the data frame as a series (indexed by the column keys of the source frame) containing untyped series representing individual columns of the frame.

countCols frame
Signature:frame:Frame<'R,'C> -> int
Type parameters: 'R, 'C

Returns the total number of column keys in the specified frame. This returns the total length of columns, including keys for which there is no data available.

countRows frame
Signature:frame:Frame<'R,'C> -> int
Type parameters: 'R, 'C

Returns the total number of row keys in the specified frame. This returns the total length of the row series, including keys for which there is no value available.

getCol column frame
Signature:column:'C -> frame:Frame<'R,'C> -> Series<'R,'V>
Type parameters: 'C, 'R, 'V

Returns a specified column from a data frame. This function uses exact matching semantics on the key. Use lookupSeries if you want to use inexact matching (e.g. on dates)

getCols columns frame
Signature:columns:seq<'C> -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'C, 'R

Returns a frame consisting of the specified columns from the original data frame. The function uses exact key matching semantics.

getRow row frame
Signature:row:'R -> frame:Frame<'R,'C> -> Series<'C,'?8788>
Type parameters: 'R, 'C, '?8788

Returns a specified row from a data frame. This function uses exact matching semantics on the key. Use lookupRow if you want to use inexact matching (e.g. on dates)

getRows rows frame
Signature:rows:seq<'R> -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C

Returns a frame consisting of the specified rows from the original data frame. The function uses exact key matching semantics.

lookupCol column lookup frame
Signature:column:'C -> lookup:Lookup -> frame:Frame<'R,'C> -> Series<'R,'?8792>
Type parameters: 'C, 'R, '?8792

Returns a specified series (column) from a data frame. If the data frame has ordered column index, the lookup semantics can be used to get series with nearest greater/smaller key. For exact semantics, you can use getCol.

lookupRow row lookup frame
Signature:row:'R -> lookup:Lookup -> frame:Frame<'R,'C> -> Series<'C,'?8796>
Type parameters: 'R, 'C, '?8796

Returns a specified row from a data frame. If the data frame has ordered row index, the lookup semantics can be used to get row with nearest greater/smaller key. For exact semantics, you can use getRow.

rows frame
Signature:frame:Frame<'R,'C> -> RowSeries<'R,'C>
Type parameters: 'R, 'C

Returns the rows of the data frame as a series (indexed by the row keys of the source frame) containing untyped series representing individual row of the frame.

Data structure manipulation 

More documentation here

Functions and values

Function or valueDescription
expandAllCols nesting frame
Signature:nesting:int -> frame:Frame<'R,string> -> Frame<'R,string>
Type parameters: 'R

Creates a new data frame where all columns are expanded based on runtime structure of the objects they store. The expansion is performed recrusively to the specified depth. A column can be expanded if it is Series<string, T> or IDictionary<K, V> or if it is any .NET object with readable properties.

Parameters

  • nesting - The nesting level for expansion. When set to 0, nothing is done.
  • frame - Input data frame whose columns will be expanded
expandCols names frame
Signature:names:seq<string> -> frame:Frame<'R,string> -> Frame<'R,string>
Type parameters: 'R

Creates a new data frame where the specified columns are expanded based on runtime structure of the objects they store. A column can be expanded if it is Series<string, T> or IDictionary<K, V> or if it is any .NET object with readable properties.

Example

Given a data frame with a series that contains tuples, you can expand the tuple members and get a frame with columns S.Item1 and S.Item2:

let df = frame [ "S" => series [ 1 => (1, "One"); 2 => (2, "Two") ] ]  
df |> Frame.expandCols ["S"]

Parameters

  • names - Names of columns in the original data frame to be expanded
  • frame - Input data frame whose columns will be expanded
indexColsWith keys frame
Signature:keys:seq<'C2> -> frame:Frame<'R,'C1> -> Frame<'R,'C2>
Type parameters: 'C2, 'R, 'C1

Replace the column index of the frame with the provided sequence of column keys. The columns of the frame are assigned keys according to the current order, or in a non-deterministic way, if the current column index is not ordered.

Parameters

  • frame - Source data frame whose column index are to be replaced.
  • keys - A collection of new column keys.
indexRows column frame
Signature:column:'C -> frame:Frame<'R1,'C> -> Frame<'R2,'C>
Type parameters: 'C, 'R1, 'R2

Returns a data frame whose rows are indexed based on the specified column of the original data frame. The generic type parameter is specifies the type of the values in the required index column (and usually needs to be specified using a type annotation).

Parameters

  • frame - Source data frame whose row index is to be replaced.
  • column - The name of a column in the original data frame that will be used for the new index. Note that the values in the column need to be unique.
indexRowsDate column frame
Signature:column:'C -> frame:Frame<'R1,'C> -> Frame<DateTime,'C>
Type parameters: 'C, 'R1

Returns a data frame whose rows are indexed based on the specified column of the original data frame. This function casts (or converts) the column key to values of type DateTime (a generic variant that may require some type annotation is Frame.indexRows)

Parameters

  • frame - Source data frame whose row index is to be replaced.
  • column - The name of a column in the original data frame that will be used for the new index. Note that the values in the column need to be unique.
indexRowsDateOffs column frame
Signature:column:'C -> frame:Frame<'R1,'C> -> Frame<DateTimeOffset,'C>
Type parameters: 'C, 'R1

Returns a data frame whose rows are indexed based on the specified column of the original data frame. This function casts (or converts) the column key to values of type DateTimeOffset (a generic variant that may require some type annotation is Frame.indexRows)

Parameters

  • frame - Source data frame whose row index is to be replaced.
  • column - The name of a column in the original data frame that will be used for the new index. Note that the values in the column need to be unique.
indexRowsInt column frame
Signature:column:'C -> frame:Frame<'R1,'C> -> Frame<int,'C>
Type parameters: 'C, 'R1

Returns a data frame whose rows are indexed based on the specified column of the original data frame. This function casts (or converts) the column key to values of type int (a generic variant that may require some type annotation is Frame.indexRows)

Parameters

  • frame - Source data frame whose row index is to be replaced.
  • column - The name of a column in the original data frame that will be used for the new index. Note that the values in the column need to be unique.
indexRowsObj column frame
Signature:column:'C -> frame:Frame<'R1,'C> -> Frame<obj,'C>
Type parameters: 'C, 'R1

Returns a data frame whose rows are indexed based on the specified column of the original data frame. This function casts (or converts) the column key to values of type obj (a generic variant that may require some type annotation is Frame.indexRows)

Parameters

  • frame - Source data frame whose row index is to be replaced.
  • column - The name of a column in the original data frame that will be used for the new index. Note that the values in the column need to be unique.
indexRowsOrdinally frame
Signature:frame:Frame<'TRowKey,'TColumnKey> -> Frame<int,'TColumnKey>
Type parameters: 'TRowKey, 'TColumnKey

Replace the row index of the frame with ordinarilly generated integers starting from zero. The rows of the frame are assigned index according to the current order, or in a non-deterministic way, if the current row index is not ordered.

Parameters

  • frame - Source data frame whose row index are to be replaced.
indexRowsString column frame
Signature:column:'C -> frame:Frame<'R1,'C> -> Frame<string,'C>
Type parameters: 'C, 'R1

Returns a data frame whose rows are indexed based on the specified column of the original data frame. This function casts (or converts) the column key to values of type string (a generic variant that may require some type annotation is Frame.indexRows)

Parameters

  • frame - Source data frame whose row index is to be replaced.
  • column - The name of a column in the original data frame that will be used for the new index. Note that the values in the column need to be unique.
indexRowsWith keys frame
Signature:keys:seq<'R2> -> frame:Frame<'R1,'C> -> Frame<'R2,'C>
Type parameters: 'R2, 'R1, 'C

Replace the row index of the frame with the provided sequence of row keys. The rows of the frame are assigned keys according to the current order, or in a non-deterministic way, if the current row index is not ordered.

Parameters

  • frame - Source data frame whose row index are to be replaced.
  • keys - A collection of new row keys.
orderCols frame
Signature:frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C

Returns a data frame that contains the same data as the input, but whose columns are an ordered series. This allows using operations that are only available on indexed series such as alignment and inexact lookup.

Parameters

  • frame - Source data frame to be ordered.
orderRows frame
Signature:frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C

Returns a data frame that contains the same data as the input, but whose rows are an ordered series. This allows using operations that are only available on indexed series such as alignment and inexact lookup.

Parameters

  • frame - Source data frame to be ordered.
realignRows keys frame
Signature:keys:seq<'R> -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C

Align the existing data to a specified collection of row keys. Values in the data frame that do not match any new key are dropped, new keys (that were not in the original data frame) are assigned missing values.

Parameters

  • frame - Source data frame that is to be realigned.
  • keys - A sequence of new row keys. The keys must have the same type as the original frame keys (because the rows are realigned).
transpose frame
Signature:frame:Frame<'R,'TColumnKey> -> Frame<'TColumnKey,'R>
Type parameters: 'R, 'TColumnKey

Returns a transposed data frame. The rows of the original data frame are used as the columns of the new one (and vice versa). Use this operation if you have a data frame and you mostly need to access its rows as a series (because accessing columns as a series is more efficient).

Parameters

  • frame - Source data frame to be transposed.

Joining, zipping and appending 

More info

Functions and values

Function or valueDescription
append frame1 frame2
Signature:frame1:Frame<'R,'C> -> frame2:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C

Append two data frames with non-overlapping values. The operation takes the union of columns and rows of the source data frames and then unions the values. An exception is thrown when both data frames define value for a column/row location, but the operation succeeds if one frame has a missing value at the location.

Note that the rows are not automatically reindexed to avoid overlaps. This means that when a frame has rows indexed with ordinal numbers, you may need to explicitly reindex the row keys before calling append.

Parameters

  • otherFrame - The other frame to be appended (combined) with the current instance
join kind frame1 frame2
Signature:kind:JoinKind -> frame1:Frame<'R,'C> -> frame2:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C

Join two data frames. The columns of the joined frames must not overlap and their rows are aligned and transformed according to the specified join kind. For more alignment options on ordered frames, see joinAlign.

Parameters

  • frame1 - First data frame (left) to be used in the joining
  • frame2 - Other frame (right) to be joined with frame1
  • kind - Specifies the joining behavior on row indices. Use JoinKind.Outer and JoinKind.Inner to get the union and intersection of the row keys, respectively. Use JoinKind.Left and JoinKind.Right to use the current key of the left/right data frame.
joinAlign kind lookup frame1 frame2
Signature:kind:JoinKind -> lookup:Lookup -> frame1:Frame<'R,'C> -> frame2:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C

Join two data frames. The columns of the joined frames must not overlap and their rows are aligned and transformed according to the specified join kind. When the index of both frames is ordered, it is possible to specify lookup in order to align indices from other frame to the indices of the main frame (typically, to find the nearest key with available value for a key).

Parameters

  • frame1 - First data frame (left) to be used in the joining
  • frame2 - Other frame (right) to be joined with frame1
  • kind - Specifies the joining behavior on row indices. Use JoinKind.Outer and JoinKind.Inner to get the union and intersection of the row keys, respectively. Use JoinKind.Left and JoinKind.Right to use the current key of the left/right data frame.
  • lookup - When kind is Left or Right and the two frames have ordered row index, this parameter can be used to specify how to find value for a key when there is no exactly matching key or when there are missing values.
zip op frame1 frame2
Signature:op:('V1 -> 'V2 -> 'V) -> frame1:Frame<'R,'C> -> frame2:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'V1, 'V2, 'V, 'R, 'C

Aligns two data frames using both column index and row index and apply the specified operation on values of a specified type that are available in both data frames. This overload uses JoinKind.Outer for both columns and rows.

Once aligned, the call df1.Zip<T>(df2, f) applies the specifed function f on all T values that are available in corresponding locations in both frames. For values of other types, the value from df1 is returned.

Parameters

  • frame1 - First frame to be aligned and zipped with the other instance
  • frame2 - Other frame to be aligned and zipped with the first instance
  • columnKind - Specifies how to align columns (inner, outer, left or right join)
  • rowKind - Specifies how to align rows (inner, outer, left or right join)
  • lookup - Specifies how to find matching value for a row (when using left or right join on rows)
  • op - A function that is applied to aligned values. The Zip operation is generic in the type of this function and the type of function is used to determine which values in the frames are zipped and which are left unchanged.
zipAlign (...)
Signature:columnKind:JoinKind -> rowKind:JoinKind -> lookup:Lookup -> op:('V1 -> 'V2 -> 'V) -> frame1:Frame<'R,'C> -> frame2:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'V1, 'V2, 'V, 'R, 'C

Aligns two data frames using both column index and row index and apply the specified operation on values of a specified type that are available in both data frames. The parameters columnKind, and rowKind can be specified to determine how the alginment works (similarly to Join). Column keys are always matched using Lookup.Exact, but lookup determines lookup for rows.

Once aligned, the call df1.Zip<T>(df2, f) applies the specifed function f on all T values that are available in corresponding locations in both frames. For values of other types, the value from df1 is returned.

Parameters

  • frame1 - First frame to be aligned and zipped with the other instance
  • frame2 - Other frame to be aligned and zipped with the first instance
  • columnKind - Specifies how to align columns (inner, outer, left or right join)
  • rowKind - Specifies how to align rows (inner, outer, left or right join)
  • lookup - Specifies how to find matching value for a row (when using left or right join on rows)
  • op - A function that is applied to aligned values. The Zip operation is generic in the type of this function and the type of function is used to determine which values in the frames are zipped and which are left unchanged.

Missing values 

More documentation here

Functions and values

Function or valueDescription
colsDense frame
Signature:frame:Frame<'R,'C> -> ColumnSeries<'R,'C>
Type parameters: 'R, 'C

Returns the columns of the data frame that do not have any missing values. The operation returns a series (indexed by the column keys of the source frame) containing series representing individual columns of the frame. This is similar to Columns, but it skips columns that contain missing value in any row.

Parameters

  • frame - An input data frame containing columns to be filtered
dropSparseCols frame
Signature:frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C

Creates a new data frame that contains only those columns of the original data frame that are dense, meaning that they have a value for each row. The resulting data frame has the same number of rows, but may have fewer columns (or no columns at all).

Parameters

  • frame - An input data frame that is to be filtered
dropSparseRows frame
Signature:frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C

Creates a new data frame that contains only those rows of the original data frame that are dense, meaning that they have a value for each column. The resulting data frame has the same number of columns, but may have fewer rows (or no rows at all).

Parameters

  • frame - An input data frame that is to be filtered
fillMissing direction frame
Signature:direction:Direction -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C

Fill missing values in the data frame with the nearest available value (using the specified direction). Note that the frame may still contain missing values after call to this function (e.g. if the first value is not available and we attempt to fill series with previous values). This operation can only be used on ordered frames.

Parameters

  • frame - An input data frame that is to be filled
  • direction - Specifies the direction used when searching for the nearest available value. Backward means that we want to look for the first value with a smaller key while Forward searches for the nearest greater key.
fillMissingUsing f frame
Signature:f:(Series<'R,'T> -> 'R -> 'T) -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'T, 'C

Fill missing values in the frame using the specified function. The specified function is called with all series and keys for which the frame does not contain value and the result of the call is used in place of the missing value.

The operation is only applied to columns (series) that contain values of the same type as the return type of the provided filling function. The operation does not attempt to convert between numeric values (so a series containing float will not be converted to a series of int).

Parameters

  • frame - An input data frame that is to be filled
  • f - A function that takes a series Series<R, T> together with a key K in the series and generates a value to be used in a place where the original series contains a missing value.
fillMissingWith value frame
Signature:value:'T -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'T, 'R, 'C

Fill missing values of a given type in the frame with a constant value. The operation is only applied to columns (series) that contain values of the same type as the provided filling value. The operation does not attempt to convert between numeric values (so a series containing float will not be converted to a series of int).

Parameters

  • frame - An input data frame that is to be filled
  • value - A constant value that is used to fill all missing values
rowsDense frame
Signature:frame:Frame<'R,'C> -> RowSeries<'R,'C>
Type parameters: 'R, 'C

Returns the rows of the data frame that do not have any missing values. The operation returns a series (indexed by the row keys of the source frame) containing series representing individual row of the frame. This is similar to Rows, but it skips rows that contain missing value in any column.

Parameters

  • frame - An input data frame containing rows to be filtered

Projection and filtering 

TBD

Functions and values

Function or valueDescription
filterCols f frame
Signature:f:('C -> ObjectSeries<'R> -> bool) -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'C, 'R

Returns a new data frame containing only the columns of the input frame for which the specified predicate returns true. The predicate is called with the column key and object series that represents the column data.

Parameters

  • frame - Input data frame to be transformed
  • f - Function of two arguments that defines the predicate
filterColValues f frame
Signature:f:(ObjectSeries<'R> -> bool) -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C

Returns a new data frame containing only the columns of the input frame for which the specified predicate returns true. The predicate is called with an object series that represents the column data (use filterCols if you need to access the column key).

Parameters

  • frame - Input data frame to be transformed
  • f - Function of one argument that defines the predicate
filterRows f frame
Signature:f:('R -> ObjectSeries<'C> -> bool) -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C

Returns a new data frame containing only the rows of the input frame for which the specified predicate returns true. The predicate is called with the row key and object series that represents the row data.

Parameters

  • frame - Input data frame to be transformed
  • f - Function of two arguments that defines the predicate
filterRowValues f frame
Signature:f:(ObjectSeries<'C> -> bool) -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'C, 'R

Returns a new data frame containing only the rows of the input frame for which the specified predicate returns true. The predicate is called with an object series that represents the row data (use filterRows if you need to access the row key).

Parameters

  • frame - Input data frame to be transformed
  • f - Function of one argument that defines the predicate
mapColKeys f frame
Signature:f:('C -> '?8956) -> frame:Frame<'R,'C> -> Frame<'R,'?8956>
Type parameters: 'C, '?8956, 'R

Builds a new data frame whose column keys are the results of applying the specified function on the column keys of the original data frame.

Parameters

  • frame - Input data frame to be transformed
  • f - Function of one argument that defines the column key mapping
mapCols f frame
Signature:f:('C -> ObjectSeries<'R> -> '?8947) -> frame:Frame<'R,'C> -> Frame<'?8948,'C>
Type parameters: 'C, 'R, '?8947, '?8948

Builds a new data frame whose columns are the results of applying the specified function on the columns of the input data frame. The function is called with the column key and object series that represents the column data.

Parameters

  • frame - Input data frame to be transformed
  • f - Function of two arguments that defines the column mapping
mapColValues f frame
Signature:f:(ObjectSeries<'R> -> '?8951) -> frame:Frame<'R,'C> -> Frame<'?8952,'C>
Type parameters: 'R, '?8951, '?8952, 'C

Builds a new data frame whose columns are the results of applying the specified function on the columns of the input data frame. The function is called with an object series that represents the column data (use mapCols if you need to access the column key).

Parameters

  • frame - Input data frame to be transformed
  • f - Function of one argument that defines the column mapping
mapRowKeys f frame
Signature:f:('R1 -> 'R2) -> frame:Frame<'R1,'C> -> Frame<'R2,'C>
Type parameters: 'R1, 'R2, 'C

Builds a new data frame whose row keys are the results of applying the specified function on the row keys of the original data frame.

Parameters

  • frame - Input data frame to be transformed
  • f - Function of one argument that defines the row key mapping
mapRows f frame
Signature:f:('R -> ObjectSeries<'C> -> 'V) -> frame:Frame<'R,'C> -> Series<'R,'V>
Type parameters: 'R, 'C, 'V

Builds a new data frame whose rows are the results of applying the specified function on the rows of the input data frame. The function is called with the row key and object series that represents the row data.

Parameters

  • frame - Input data frame to be transformed
  • f - Function of two arguments that defines the row mapping
mapRowValues f frame
Signature:f:(ObjectSeries<'C> -> 'V) -> frame:Frame<'R,'C> -> Series<'R,'V>
Type parameters: 'C, 'V, 'R

Builds a new data frame whose rows are the results of applying the specified function on the rows of the input data frame. The function is called with an object series that represents the row data (use mapRows if you need to access the row key).

Parameters

  • frame - Input data frame to be transformed
  • f - Function of one argument that defines the row mapping

Series operations 

Functions and values

Function or valueDescription
addSeries column series frame
Signature:column:'C -> series:Series<'R,'V> -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'C, 'R, 'V

Creates a new data frame that contains all data from the original data frame, together with an additional series. The operation uses left join and aligns new series to the existing frame keys.

Parameters

  • column - A key (or name) for the newly added column
  • series - A data series to be added (the row key type has to match)
  • frame - Source data frame (which is not mutated by the operation)
dropSeries column frame
Signature:column:'C -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'C, 'R

Creates a new data frame that contains all data from the original data frame without the specified series (column). The operation throws if the column key is not found.

Parameters

  • column - The key (or name) to be dropped from the frame
  • frame - Source data frame (which is not mutated by the operation)
getSeries column frame
Signature:column:'C -> frame:Frame<'R,'C> -> Series<'R,float>
Type parameters: 'C, 'R

Returns a specified column from a data frame as a float series. This function attempts to covnert the column to numeric and throws an exception if that is not possible. For non-numeric types, use getCol instead.

replaceSeries column series frame
Signature:column:'C -> series:ISeries<'R> -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'C, 'R

Creates a new data frame where the specified column is repalced with a new series. (If the series does not exist, only the new series is added.)

Parameters

  • column - A key (or name) for the column to be replaced or added
  • series - A data series to be used (the row key type has to match)
  • frame - Source data frame (which is not mutated by the operation)

Other module members 

Functions and values

Function or valueDescription
applyLevel keySelector op frame
Signature:keySelector:('R -> '?9030) -> op:(Series<'R,ObjectSeries<'C>> -> '?9032) -> frame:Frame<'R,'C> -> Series<'?9030,'?9032>
Type parameters: 'R, '?9030, 'C, '?9032
collapseCols series
Signature:series:Series<'K,Frame<'K1,'K2>> -> Frame<'K1,('K * 'K2)>
Type parameters: 'K, 'K1, 'K2
collapseRows series
Signature:series:Series<'K,Frame<'K1,'K2>> -> Frame<('K * 'K1),'K2>
Type parameters: 'K, 'K1, 'K2
countLevel keySelector frame
Signature:keySelector:('R -> '?9008) -> frame:Frame<'R,'C> -> Frame<'?9008,'C>
Type parameters: 'R, '?9008, 'C
countValues frame
Signature:frame:Frame<'R,'C> -> Series<'C,int>
Type parameters: 'R, 'C
diff offset frame
Signature:offset:int -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C
fillErrorsWith value frame
Signature:value:'T -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'T, 'R, 'C
flatten level op frame
Signature:level:('R -> 'K) -> op:(Series<'R,obj> -> 'V) -> frame:Frame<'R,'C> -> Series<'C,Series<'K,'V>>
Type parameters: 'R, 'K, 'V, 'C
flattenRows level op frame
Signature:level:('R -> 'K) -> op:(Frame<'R,'C> -> 'V) -> frame:Frame<'R,'C> -> Series<'K,'V>
Type parameters: 'R, 'K, 'C, 'V
groupColsBy column frame
Signature:column:'R -> frame:Frame<'R,'C> -> Frame<'R,('K * 'C)>
Type parameters: 'R, 'C, 'K
groupColsByBool column frame
Signature:column:'?8862 -> frame:Frame<'?8862,'?8863> -> Frame<'?8862,(bool * '?8863)>
Type parameters: '?8862, '?8863
groupColsByInt column frame
Signature:column:'?8856 -> frame:Frame<'?8856,'?8857> -> Frame<'?8856,(int * '?8857)>
Type parameters: '?8856, '?8857
groupColsByObj column frame
Signature:column:'?8853 -> frame:Frame<'?8853,'?8854> -> Frame<'?8853,(obj * '?8854)>
Type parameters: '?8853, '?8854
groupColsByString column frame
Signature:column:'?8859 -> frame:Frame<'?8859,'?8860> -> Frame<'?8859,(string * '?8860)>
Type parameters: '?8859, '?8860
groupColsUsing selector frame
Signature:selector:('C -> ObjectSeries<'R> -> '?8831) -> frame:Frame<'R,'C> -> Frame<'R,('?8831 * 'C)>
Type parameters: 'C, 'R, '?8831
groupRowsBy column frame
Signature:column:'C -> frame:Frame<'R,'C> -> Frame<('K * 'R),'C>
Type parameters: 'C, 'R, 'K
groupRowsByBool column frame
Signature:column:'?8850 -> frame:Frame<'?8851,'?8850> -> Frame<(bool * '?8851),'?8850>
Type parameters: '?8850, '?8851
groupRowsByInt column frame
Signature:column:'?8844 -> frame:Frame<'?8845,'?8844> -> Frame<(int * '?8845),'?8844>
Type parameters: '?8844, '?8845
groupRowsByObj column frame
Signature:column:'?8841 -> frame:Frame<'?8842,'?8841> -> Frame<(obj * '?8842),'?8841>
Type parameters: '?8841, '?8842
groupRowsByString column frame
Signature:column:'?8847 -> frame:Frame<'?8848,'?8847> -> Frame<(string * '?8848),'?8847>
Type parameters: '?8847, '?8848
groupRowsUsing selector frame
Signature:selector:('R -> ObjectSeries<'C> -> '?8827) -> frame:Frame<'R,'C> -> Frame<('?8827 * 'R),'C>
Type parameters: 'R, 'C, '?8827
maxRowBy column frame
Signature:column:'C -> frame:Frame<'R,'C> -> 'R * ObjectSeries<'C>
Type parameters: 'C, 'R
mean frame
Signature:frame:Frame<'R,'C> -> Series<'C,float>
Type parameters: 'R, 'C
meanLevel keySelector frame
Signature:keySelector:('R -> '?9000) -> frame:Frame<'R,'C> -> Frame<'?9000,'C>
Type parameters: 'R, '?9000, 'C
median frame
Signature:frame:Frame<'R,'C> -> Series<'C,float>
Type parameters: 'R, 'C
medianLevel keySelector frame
Signature:keySelector:('R -> '?9016) -> frame:Frame<'R,'C> -> Frame<'?9016,'C>
Type parameters: 'R, '?9016, 'C
minRowBy column frame
Signature:column:'C -> frame:Frame<'R,'C> -> 'R * ObjectSeries<'C>
Type parameters: 'C, 'R
nest frame
Signature:frame:Frame<('R1 * 'R2),'C> -> Series<'R1,Frame<'R2,'C>>
Type parameters: 'R1, 'R2, 'C
nestBy keySelector frame
Signature:keySelector:('R -> '?9095) -> frame:Frame<'R,'C> -> Series<'?9095,Frame<'R,'C>>
Type parameters: 'R, '?9095, 'C
reduce op frame
Signature:op:('T -> 'T -> 'T) -> frame:Frame<'R,'C> -> Series<'C,'T>
Type parameters: 'T, 'R, 'C
reduceLevel keySelector op frame
Signature:keySelector:('R -> '?9025) -> op:('T -> 'T -> 'T) -> frame:Frame<'R,'C> -> Frame<'?9025,'C>
Type parameters: 'R, '?9025, 'T, 'C
sdv frame
Signature:frame:Frame<'R,'C> -> Series<'C,float>
Type parameters: 'R, 'C
sdvLevel keySelector frame
Signature:keySelector:('R -> '?9012) -> frame:Frame<'R,'C> -> Frame<'?9012,'C>
Type parameters: 'R, '?9012, 'C
shift offset frame
Signature:offset:int -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C
stack frame
Signature:frame:Frame<'R,'C> -> Frame<int,string>
Type parameters: 'R, 'C

Implements R-like 'stack' (returns frame whose columns are named Row/Column/Value)

stat op frame
Signature:op:(seq<float> -> '?8982) -> frame:Frame<'R,'C> -> Series<'C,'?8982>
Type parameters: '?8982, 'R, 'C
statLevel keySelector op frame
Signature:keySelector:('R -> '?9020) -> op:(seq<float> -> '?9021) -> frame:Frame<'R,'C> -> Frame<'?9020,'C>
Type parameters: 'R, '?9020, '?9021, 'C
sum frame
Signature:frame:Frame<'R,'C> -> Series<'C,float>
Type parameters: 'R, 'C
sumLevel keySelector frame
Signature:keySelector:('R -> '?9004) -> frame:Frame<'R,'C> -> Frame<'?9004,'C>
Type parameters: 'R, '?9004, 'C
takeLast count frame
Signature:count:int -> frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C
tryMapRows f frame
Signature:f:('R -> ObjectSeries<'C> -> 'V) -> frame:Frame<'R,'C> -> Series<'R,TryValue<'V>>
Type parameters: 'R, 'C, 'V
tryValues frame
Signature:frame:Frame<'R,'C> -> Frame<'R,'C>
Type parameters: 'R, 'C

Unwraps TryValues into regular values. Throws AggregateException if any TryValues are Failures

unnest series
Signature:series:Series<'R1,Frame<'R2,'C>> -> Frame<('R1 * 'R2),'C>
Type parameters: 'R1, 'R2, 'C
unstack frame
Signature:frame:Frame<'O,string> -> Frame<'R,'C>
Type parameters: 'O, 'R, 'C
window size frame
Signature:size:int -> frame:Frame<'R,'C> -> Series<'R,Frame<'R,'C>>
Type parameters: 'R, 'C
windowInto size f frame
Signature:size:int -> f:(Frame<'R,'C> -> '?8873) -> frame:Frame<'R,'C> -> Series<'R,'?8873>
Type parameters: 'R, 'C, '?8873
Fork me on GitHub