|
|
FishC 发表于 2026-2-16 20:41
在 Node.js 中,data-forge 是一个强大的数据处理库,可以方便地进行数据聚合操作,类似 SQL 的 GROUP BY。下面举例说明如何使用 data-forge 进行数据聚合。
假设我们有一个销售数据集,包含以下字段:department(部门)、employee(员工)、sales(销售额)。我们想按部门汇总销售额。
首先,安装 data-forge:
然后,创建示例代码:
- const dataForge = require('data-forge');
- // 示例数据
- const data = [
- { department: 'Sales', employee: 'Alice', sales: 100 },
- { department: 'Sales', employee: 'Bob', sales: 200 },
- { department: 'Marketing', employee: 'Charlie', sales: 150 },
- { department: 'Marketing', employee: 'David', sales: 250 },
- { department: 'Sales', employee: 'Eve', sales: 300 }
- ];
- // 创建 DataFrame
- let df = new dataForge.DataFrame(data);
- // 按 department 分组,并计算每个部门的销售总额
- let aggregated = df
- .groupBy(row => row.department) // 按部门分组
- .select(group => ({
- department: group.first().department, // 获取部门名称
- totalSales: group.deflate(row => row.sales).sum(), // 计算该部门销售总额
- averageSales: group.deflate(row => row.sales).average(), // 计算该部门平均销售额
- employeeCount: group.count() // 计算该部门员工数
- }))
- .inflate() // 将分组结果转换回 DataFrame
- .orderBy(row => row.department); // 按部门排序
- // 输出结果
- console.log('按部门汇总销售额:');
- console.log(aggregated.toArray());
- // 也可以输出为表格格式
- console.log(aggregated.toString());
复制代码
运行上述代码,输出结果如下:
- 按部门汇总销售额:
- [
- { department: 'Marketing', totalSales: 400, averageSales: 200, employeeCount: 2 },
- { department: 'Sales', totalSales: 600, averageSales: 200, employeeCount: 3 }
- ]
复制代码
在这个例子中,我们使用了 groupBy 方法按部门分组,然后使用 select 方法对每个分组进行聚合计算,包括销售总额、平均销售额和员工数量。最后,使用 inflate 方法将分组结果转换回 DataFrame,并按部门排序。
data-forge 还支持其他聚合函数,如 min、max、median 等,你可以根据需求选择合适的聚合函数。
希望这个例子能帮助你理解如何使用 data-forge 进行数据聚合。如果有更多问题,请随时提问!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|