withRowsAdded method

DataFrame withRowsAdded(
  1. DataFrame that
)

A new data frame with the rows of that added.

Example:

final d1 = """
  a,b
  1,apple
  2,ball
  3,cat
""".parseAsCsv(), d2 = """
  a,b
  4,dog
  5,egg
  6,fish
""".parseAsCsv();
print(d1.withRowsAdded(d2));

.-.-------.
|a|b      |
:-+-------:
|1|apple  |
|2|ball   |
|3|cat    |
|4|dog    |
|5|egg    |
|6|fish   |
'-'-------'

Implementation

DataFrame withRowsAdded(DataFrame that) {
  if (numericColumns.keys
          .any((key) => !that.numericColumns.containsKey(key)) ||
      that.numericColumns.keys
          .any((key) => !numericColumns.containsKey(key)) ||
      categoricColumns.keys
          .any((key) => !that.categoricColumns.containsKey(key)) ||
      that.categoricColumns.keys
          .any((key) => !categoricColumns.containsKey(key))) {
    throw PackhorseError.badStructure(
        "Columns must match (DataFrame.withDataAdded).");
  }
  final result = copy;
  for (final MapEntry(:key, :value) in that.numericColumns.entries) {
    result.numericColumns[key]!.addAll(value.values);
  }
  for (final MapEntry(:key, :value) in that.categoricColumns.entries) {
    result.categoricColumns[key]!.addAll(value.values);
  }
  return result;
}