groupBy method
Group rows by a column's value. Returns Map<value, CsvTable>.
Implementation
Map<dynamic, CsvTable> groupBy(String column) {
final idx = headers.indexOf(column);
if (idx < 0) throw CsvException('Column "$column" not found');
final groups = <dynamic, List<List<dynamic>>>{};
for (final row in rawData) {
final key = idx < row.length ? row[idx] : null;
(groups[key] ??= []).add(List<dynamic>.from(row));
}
return groups.map(
(key, rows) =>
MapEntry(key, CsvTable.internal(List<String>.from(headers), rows)),
);
}