GroupBy API
GroupBy operations for aggregating data across groups. Available for both Series and DataFrame.
Usage
Series GroupBy
const sales = new Series([100, 200, 150, 300, 250], { name: "sales" });
const regions = ["North", "North", "South", "South", "South"];
const grouped = sales.groupBy(regions); // Group by region labels
// This creates groups: "North" contains [100, 200], "South" contains [150, 300, 250]
How Series GroupBy works:
- You provide an array of group labels that matches the Series length
- Each position in the Series gets assigned to a group based on the label at that position
- Values with the same label are grouped together
DataFrame GroupBy
const df = new DataFrame({
name: ["Alice", "Bob", "Charlie", "Alice", "Bob"],
age: [25, 30, 35, 28, 32],
salary: [50000, 60000, 70000, 55000, 65000]
});
const grouped = df.groupBy("name"); // Group by column
Methods
Data Access
groups()- Get the groups as a MapgetGroup(name: string)- Get a specific group (Series or DataFrame)size()- Get the size of each group
Aggregation Methods
agg(aggregation: AggSpec)- Apply aggregation function(s)sum()- Calculate sum for each groupmean()- Calculate mean for each groupcount()- Calculate count for each groupmin()- Calculate minimum for each groupmax()- Calculate maximum for each groupstd()- Calculate standard deviation for each groupvar()- Calculate variance for each groupfirst()- Get first value for each grouplast()- Get last value for each group
Examples
Series GroupBy
const sales = new Series([100, 200, 150, 300, 250], { name: "sales" });
const regions = ["North", "North", "South", "South", "South"];
const grouped = sales.groupBy(regions);
const result = grouped.sum(); // Returns Series with total sales by region
DataFrame GroupBy
const df = new DataFrame({
name: ["Alice", "Bob", "Charlie", "Alice", "Bob"],
age: [25, 30, 35, 28, 32],
salary: [50000, 60000, 70000, 55000, 65000]
});
// Single aggregation
const byName = df.groupBy("name");
const avgAge = byName.mean().get("age");
// Multiple aggregations
const result = df.groupBy("name").agg({
age: "mean",
salary: ["sum", "max"]
});
Return Types
- Series GroupBy → Returns
Seriesfor single aggregations - DataFrame GroupBy → Returns
DataFramefor all aggregations