# 数据 SDK

数据分析处理的常用小工具：解析、画像、分组聚合、透视、时间序列、异常、格式化、Markdown 表格与轻量图表。纯函数、零依赖，浏览器与 Node 通用——减少每个应用各写一遍的样板代码。

```js
import { data } from "/developer/sdk/v1/aidc.js";
```

## 解析与导出

```js
const rows = data.parseCsv(text);           // RFC 4180：引号、转义、字段内换行；数字列自动转 number
const csv = data.toCsv(rows, ["月份", "营收"]);
```

xlsx 请先另存为 CSV（或在服务端处理）——浏览器 SDK 不打包 xlsx 解析器。

## 画像

```js
data.profile(rows);
// → [{ name, type: "number"|"date"|"string"|"boolean"|"empty", count, missing, distinct, min, max, mean, sum, top }]
```

## 聚合

```js
data.groupBy(rows, "region", { revenue: ["amount", "sum"], orders: "count", avg: ["amount", "avg"] });
data.pivot(rows, "region", "month", "amount", "sum");          // → { columns, rows }
data.timeSeries(rows, "order_date", "month", { revenue: ["amount", "sum"] });
data.topN(rows, "revenue", 10);
data.timeBucket("2026-09-25", "week");                          // → "2026-09-22"（周一）
```

聚合函数：`sum`、`avg`、`count`、`min`、`max`、`distinct`。

## 变化与异常

```js
data.pctChange(1200, 1000);            // 0.2
data.share(300, 1200);                 // 0.25
data.zScores([10, 12, 30]);
data.anomalies(monthly, "revenue", 2); // |z| ≥ 2 的月份
```

## 呈现

```js
data.formatNumber(129363024);          // "1.3 亿"
data.formatNumber(52300);              // "5.2 万"
data.formatPercent(0.2559);            // "25.6%"
data.markdownTable(rows, [["month", "月份"], ["revenue", "营收"]]);
el.innerHTML = data.barChartSvg(points, { color: "#ff4d00", format: data.formatNumber });
el.innerHTML = data.lineChartSvg(points);            // 缺省按数据上下界缩放；zero: true 从 0 起
```

复杂图表请用 Chart.js（从 `cdn.jsdelivr.net` 加载，并在清单的 `cdn` 里声明）。

## 命令行

```bash
aidc data profile orders.csv
aidc data group orders.csv --by region --sum amount --count
```

## 和连接 SDK 一起用

企业数据集的固定报告由 [连接 SDK](connect.md) 取回（只含聚合），再用数据 SDK 做二次加工与呈现——样板「ERP 数据自动分析」就是这样做的。
