dartaframe 0.0.3 copy "dartaframe: ^0.0.3" to clipboard
dartaframe: ^0.0.3 copied to clipboard

A dataframe for Dart. An abstraction to help manipulating and analysing data, designed for sdartistics.

Dartaframe #

Upstream (df): pub package Build Status Coverage Status

A fork of the df dataframe for Dart

Usage #

Create #

From csv:

final df = await DataFrame.fromCsv('dataset/stocks.csv');

fromCSV parses files according to the csv standard, including support for escape double quotes (see: RFC4180).

Note: the type of the records are infered from the data. The first line of the csv must contains the headers for the column names. Optional parameters:

dateFormat: the string format of the date: reference. Ex: MMM dd yyyy

timestampCol: the column to be treated as a timestamp. Ex: timestamp

timestampFormat: the format of the timestamp: seconds, milliseconds or microseconds. Ex: TimestampFormat.microseconds

verbose: set to true to print some info

From records:

final rows = <Map<String, dynamic>> rows[
   <String, dynamic>{'col1': 21, 'col2': 'foo', 'col3': DateTime.now()},
   <String, dynamic>{'col1': 22, 'col2': 'bar', 'col3': DateTime.now()},
];
final df = DataFrame.fromRows(rows);

Select #

final List<Map<String, dynamic>> rows = df.rows;
// select a subset of rows
final List<Map<String, dynamic>> rows = df.subset(0,100);
/// select records for a column
final List<double> values = df.colRecords<double>('col2');
/// select list of records
final List<List<dynamic>> records = df.records;

Mutate #

Add data:

// add a row
df.addRow(<String,dynamic>{'col1': 1, 'col2': 2.0});
// add a line of records
df.addRecord(<dynamic>[1, 2.0]);

Remove data:

df.removeFirstRow();
df.removeLastRow();
// remove the third row
df.removeRowAt(2);
// limit the dataframe to 100 rows starting from index 30
df.limit(100, startIndex: 30);

Copy a dataframe:

// get a new dataframe from the existing one
final DataFrame df2 = df.copy_();
// get a new dataframe with limited data
final DataFrame df2 = df.limit_(100);

Count #

Nulls and zeros:

final int n = df.countNulls_('col1');
final int n = df.countZeros_('col1');

Columns:

final int mean = df.mean('col1');
final int sum = df.sum('col1');
final int max = df.max('col1');
final int min = df.min('col1');

Info #

final int numRecords= df.length;
final List<DataFrameColumn> cols = df.columns;
final List<String> colNames = df.columnsNames;
// print info and sample data
df.head();
// like head with a bit more details
df.show();

Conventions #

All the dataframe operations are inplace. All the methods that return objects end with an underscore. Example:

// inplace
df.limit(30);
// get a new dataframe with limited data
final DataFrame df2 = df.limit_(30);

Vocabulary conventions:

  • A row is a map of key/values pair
  • A record is a single cell value
  • An index is a row position
  • An indice is a column position
3
likes
140
points
25
downloads

Publisher

unverified uploader

Weekly Downloads

A dataframe for Dart. An abstraction to help manipulating and analysing data, designed for sdartistics.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

jiffy, meta

More

Packages that depend on dartaframe