withRowsAdded method
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;
}