DataFrame Class
A DataFrame object, used to communicate data to and from the AMPL entities.
An object of this class can be used to do the following tasks:
Assign values to AMPL entities (once the DataFrame is populated,
use ampl.AMPL.SetData
to assign its values to the modelling entities in its
columns)
Get values from AMPL, decoupling the values from the AMPL entities they
originate via ampl.Entities.Entity.GetValues
.
A DataFrame object can be created in various ways via the various constructors:
create a skeleton manually specifiying the number of indexing columns and the column headers;
get column names (and number of indexing columns) from entities of the API passing them directly
to the appropriate constructor,
get values from AMPL, decoupling the values from the AMPL entities they
originate from (via ampl.Entities.Entity.GetValues()
).
Populating a DataFrame object can be done adding row by row to a
pre-existing skeleton via ampl.DataFrame.AddRow
, setting whole columns of a
pre-existing skeleton via ampl.DataFrame.SetColumn
or adding columns (including
indexing columns) via ampl.DataFrame.AddColumn
.
Modifying a DataFrame object can be done via ampl.DataFrame.SetColumn
or
via ampl.DataFrame.SetArray
or ampl.DataFrame.SetMatrix
Accessing data in a DataFrame can be done row by row using
ampl.DataFrame.GetRow
or by column via ampl.DataFrame.GetColumn
.
- Namespace
ampl
- Assemblies
-
public class DataFrame : IEnumerable<DataFrame.Row>, IEnumerable
-
class ampl.DataFrame
-
DataFrame(System.Int32)
Create a new DataFrame with the specified number of indices
public DataFrame(int numberOfIndexColumns)
-
DataFrame(System.Int32, System.String[])
Create a new DataFrame with the specified number of indices and the specified headers
- Arguments
-
public DataFrame(int numberOfIndexColumns, params string[] headers)
-
DataFrame(ampl.Entities.Entity[])
Create a new DataFrame with the specified entities as column headers.
- Arguments
headers (ampl.Entities.Entity<ampl.Entities.Entity>[]) – The columns headers to be used; since they are AMPL entities, sets are automatically considered indices and have to be placed first in the constructor.
public DataFrame(params Entity[] headers)
-
AddColumn(System.String)
Add a new empty column with the corresponding header
- Arguments
header (System.String) – The header
public void AddColumn(string header)
-
AddColumn(System.String, System.Double[])
Add a new column with the corresponding header and values to the dataframe
- Arguments
-
public void AddColumn(string header, double[] values)
-
AddColumn(System.String, System.String[])
Add a new column with the corresponding header and values to the dataframe
- Arguments
-
public void AddColumn(string header, string[] values)
-
AddRow(System.Object[])
Add a row to the DataFrame. The size of the tuple must be equal to the total
number of columns in the dataframe.
- Arguments
values (System.Object<System.Object>[]) – A collectiong containing all the values for the row to be
added
public void AddRow(params object[] values)
-
AddRow(ampl.Tuple)
Add a row to the DataFrame. The size of the tuple must be equal to the total
number of columns in the dataframe.
- Arguments
value (ampl.Tuple) – A tuple containing all the values for the row to be
added
public void AddRow(Tuple value)
-
AddRow(ampl.VariantRef)
Add a value to a DataFrame composed of only one column
- Arguments
a1 (ampl.VariantRef) – The value to add
public void AddRow(VariantRef a1)
-
AddRow(ampl.VariantRef, ampl.VariantRef)
Add a value to a DataFrame composed of two columns.
- Arguments
-
public void AddRow(VariantRef a1, VariantRef a2)
-
AddRow(ampl.VariantRef, ampl.VariantRef, ampl.VariantRef)
Add a value to a DataFrame composed of two columns.
- Arguments
-
public void AddRow(VariantRef a1, VariantRef a2, VariantRef a3)
-
AddRow(ampl.VariantRef, ampl.VariantRef, ampl.VariantRef, ampl.VariantRef)
Add a value to a DataFrame composed of two columns.
- Arguments
-
public void AddRow(VariantRef a1, VariantRef a2, VariantRef a3, VariantRef a4)
-
Equals(System.Object)
- Return type
System.Boolean
public override bool Equals(object obj)
-
GetColumn(System.String)
Get the specified column as a view object
- Arguments
header (System.String) – The column name
- Return type
ampl.DataFrame.Column
public DataFrame.Column GetColumn(string header)
-
GetEnumerator()
- Return type
System.Collections.Generic.IEnumerator<ampl.DataFrame.Row>
public IEnumerator<DataFrame.Row> GetEnumerator()
-
GetHashCode()
- Return type
System.Int32
public override int GetHashCode()
Get headers of all columns
- Return type
System.String<System.String>[]
public string[] GetHeaders()
-
GetRow(System.Object[])
Get a row by value of the indexing columns. If the index is not specified, gets
the only row of a dataframe with no indexing columns.
- Arguments
index (System.Object<System.Object>[]) – Collection of objects representing the index of the desired row
- Return type
ampl.DataFrame.Row
public DataFrame.Row GetRow(params object[] index)
-
GetRow(ampl.Tuple)
Get a row by value of the indexing columns. If the index is not specified, gets
the only row of a dataframe with no indexing columns.
- Arguments
index (ampl.Tuple) – Tuple representing the index of the desired row
- Return type
ampl.DataFrame.Row
public DataFrame.Row GetRow(Tuple index)
-
GetRowByIndex(System.Int32)
Get row by numeric index
- Arguments
index (System.Int32) – Zero-based index of the row to get
- Return type
ampl.DataFrame.Row
- Returns
Corresponding row
public DataFrame.Row GetRowByIndex(int index)
-
Reserve(System.Int32)
Reserve space for the given number of rows.
NOTE that the rows cannot be accessed, they still have to be added via DataFrame.AddRow.
- Arguments
numRows (System.Int32) – Number of rows to be resetved
public void Reserve(int numRows)
-
SetArray(System.Double[], System.Double[])
Set the values of a DataFrame from an array of doubles. The DataFrame must have
one index and one data column.
- Arguments
-
public void SetArray(double[] indices, double[] values)
-
SetArray(System.Double[], System.String[])
Set the values of a DataFrame from an array of strings. The DataFrame must have
one index and one data column.
- Arguments
-
public void SetArray(double[] indices, string[] values)
-
SetArray(System.String[], System.Double[])
Set the values of a DataFrame from an array of doubles. The DataFrame must have
one index and one data column.
- Arguments
-
public void SetArray(string[] indices, double[] values)
-
SetArray(System.String[], System.String[])
Set the values of a DataFrame from an array of strings. The DataFrame must have
one index and one data column.
- Arguments
-
public void SetArray(string[] indices, string[] values)
-
SetColumn(System.String, System.Double[])
Set the values of a column
- Arguments
-
public void SetColumn(string header, params double[] values)
-
SetColumn(System.String, System.String[])
Set the values of a column
- Arguments
-
public void SetColumn(string header, params string[] values)
-
SetMatrix(System.Double[], System.Double[], System.Double[])
Set a matrix of doubles to an empty DataFrame. The DataFrame must have two
indices and one data column.
- Arguments
indices0 (System.Double<System.Double>[]) – The values of the first indexing column
indices1 (System.Double<System.Double>[]) – The values of the second indexing column
values (System.Double<System.Double>[,]) – A 2d-array of doubles
public void SetMatrix(double[] indices0, double[] indices1, double[, ] values)
-
SetMatrix(System.Double[], System.Double[], System.String[])
Set a matrix of strings to an empty DataFrame. The DataFrame must have two
indices and one data column.
- Arguments
indices0 (System.Double<System.Double>[]) – The values of the first indexing column
indices1 (System.Double<System.Double>[]) – The values of the second indexing column
values (System.String<System.String>[,]) – A 2d-array of strings
public void SetMatrix(double[] indices0, double[] indices1, string[, ] values)
-
SetMatrix(System.Double[], System.String[], System.Double[])
Set a matrix of doubles to an empty DataFrame. The DataFrame must have two
indices and one data column.
- Arguments
indices0 (System.Double<System.Double>[]) – The values of the first indexing column
indices1 (System.String<System.String>[]) – The values of the second indexing column
values (System.Double<System.Double>[,]) – A 2d-array of doubles
public void SetMatrix(double[] indices0, string[] indices1, double[, ] values)
-
SetMatrix(System.Double[], System.String[], System.String[])
Set a matrix of strings to an empty DataFrame. The DataFrame must have two
indices and one data column.
- Arguments
indices0 (System.Double<System.Double>[]) – The values of the first indexing column
indices1 (System.String<System.String>[]) – The values of the second indexing column
values (System.String<System.String>[,]) – A 2d-array of strings
public void SetMatrix(double[] indices0, string[] indices1, string[, ] values)
-
SetMatrix(System.String[], System.Double[], System.Double[])
Set a matrix of doubles to an empty DataFrame. The DataFrame must have two
indices and one data column.
- Arguments
indices0 (System.String<System.String>[]) – The values of the first indexing column
indices1 (System.Double<System.Double>[]) – The values of the second indexing column
values (System.Double<System.Double>[,]) – A 2d-array of doubles
public void SetMatrix(string[] indices0, double[] indices1, double[, ] values)
-
SetMatrix(System.String[], System.Double[], System.String[])
Set a matrix of strings to an empty DataFrame. The DataFrame must have two
indices and one data column.
- Arguments
indices0 (System.String<System.String>[]) – The values of the first indexing column
indices1 (System.Double<System.Double>[]) – The values of the second indexing column
values (System.String<System.String>[,]) – A 2d-array of strings
public void SetMatrix(string[] indices0, double[] indices1, string[, ] values)
-
SetMatrix(System.String[], System.String[], System.Double[])
Set a matrix of doubles to an empty DataFrame. The DataFrame must have two
indices and one data column.
- Arguments
indices0 (System.String<System.String>[]) – The values of the first indexing column
indices1 (System.String<System.String>[]) – The values of the second indexing column
values (System.Double<System.Double>[,]) – A 2d-array of doubles
public void SetMatrix(string[] indices0, string[] indices1, double[, ] values)
-
SetMatrix(System.String[], System.String[], System.String[])
Set a matrix of strings to an empty DataFrame. The DataFrame must have two
indices and one data column.
- Arguments
indices0 (System.String<System.String>[]) – The values of the first indexing column
indices1 (System.String<System.String>[]) – The values of the second indexing column
values (System.String<System.String>[,]) – A 2d-array of strings
public void SetMatrix(string[] indices0, string[] indices1, string[, ] values)
-
GetEnumerator()
- Return type
System.Collections.IEnumerator
IEnumerator IEnumerable.GetEnumerator()
-
ToString()
Return a tabular string representation of the dataframe object.
- Return type
System.String
public override string ToString()
-
ampl.DataFrame.Item
Get the row corresponding to the specified index
- Return type
ampl.DataFrame.Row
public DataFrame.Row this[params object[] index] { get; }
-
ampl.DataFrame.NumCols
Get the total number of columns in this dataframe (indexarity + number of values)
- Return type
System.Int32
public int NumCols { get; }
-
ampl.DataFrame.NumIndices
Get the number of indices (indexarity) of this dataframe
- Return type
System.Int32
public int NumIndices { get; }
-
ampl.DataFrame.NumRows
Get the number of data rows in this dataframe
- Return type
System.Int32
public int NumRows { get; }