AI Skill Hub 推荐使用:简单数据分析 是一款优质的AI工具。AI 综合评分 7.5 分,在同类工具中表现稳健。如果你正在寻找可靠的AI工具解决方案,这是一个值得深入了解的选择。
易用高性能的TypeScript库,用于数据分析,高效处理大数据。
简单数据分析 是一款基于 TypeScript 开发的开源工具,专注于 installable、ai、analysis 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
易用高性能的TypeScript库,用于数据分析,高效处理大数据。
简单数据分析 是一款基于 TypeScript 开发的开源工具,专注于 installable、ai、analysis 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
# 方式一:npm 全局安装 npm install -g simple-data-analysis # 方式二:npx 直接运行(无需安装) npx simple-data-analysis --help # 方式三:项目依赖安装 npm install simple-data-analysis # 方式四:从源码运行 git clone https://github.com/nshiab/simple-data-analysis cd simple-data-analysis npm install npm start
# 命令行使用
simple-data-analysis --help
# 基本用法
simple-data-analysis [options] <input>
# Node.js 代码中使用
const simple_data_analysis = require('simple-data-analysis');
const result = await simple_data_analysis.run(options);
console.log(result);
# simple-data-analysis 配置说明 # 查看配置选项 simple-data-analysis --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export SIMPLE_DATA_ANALYSIS_CONFIG="/path/to/config.yml"
SDA is an easy-to-use and high-performance TypeScript library for data analysis. You can use it with tabular and geospatial data.
The library is available on JSR with its documentation and on NPM.
The documentation is also available as the markdown file llm.md, which can be passed as context to improve the use of the library by AI coding assistants or agents.
The library is maintained by Nael Shiab, computational journalist and senior data producer for CBC News.
[!TIP] To learn how to use SDA, check out Code Like a Journalist, a free and open-source data analysis and data visualization course in TypeScript.
You might also find the journalism library interesting.
If you wish to contribute, please check the guidelines.
The library is available on JSR and NPM.
```bash
To quickly set up a data project with essential folders, configurations, and documentation for AI agents, you can use @nshiab/setup-data-project.
```bash
In this example, we load a CSV file with the latitude and longitude of 2023 wildfires in Canada, create point geometries from it, do a spatial join with provinces' boundaries, and then compute the number of fires and the total area burnt per province. We create charts and write the results to a file.
If you are using Deno, make sure to install and enable the Deno extension.
import { SimpleDB } from "@nshiab/simple-data-analysis";
import { barX, plot } from "@observablehq/plot";
// We start a SimpleDB instance.
const sdb = new SimpleDB();
// We create a new table
const fires = sdb.newTable("fires");
// We fetch the wildfires data. It's a csv.
await fires.loadData(
"https://raw.githubusercontent.com/nshiab/simple-data-analysis/main/test/geodata/files/firesCanada2023.csv",
);
// We create point geometries from the lat and lon columns
// and we store the points in the new column geom
await fires.points("lat", "lon", "geom");
// We log the fires
await fires.logTable();
// We create a new table
const provinces = sdb.newTable("provinces");
// We fetch the provinces' boundaries. It's a geojson.
await provinces.loadGeoData(
"https://raw.githubusercontent.com/nshiab/simple-data-analysis/main/test/geodata/files/CanadianProvincesAndTerritories.json",
);
// We log the provinces
await provinces.logTable();
// We match fires with provinces
// and we output the results into a new table.
// By default, joinGeo will automatically look
// for columns storing geometries in the tables,
// do a left join, and put the results
// in the left table. For non-spatial data,
// you can use the method join.
const firesInsideProvinces = await fires.joinGeo(provinces, "inside", {
outputTable: "firesInsideProvinces",
});
// We summarize to count the number of fires
// and sum up the area burnt in each province.
await firesInsideProvinces.summarize({
values: "hectares",
categories: "nameEnglish",
summaries: ["count", "sum"],
decimals: 0,
});
// We rename columns.
await firesInsideProvinces.renameColumns({
count: "nbFires",
sum: "burntArea",
});
// We want the province with
// the greatest burnt area first.
await firesInsideProvinces.sort({ burntArea: "desc" });
// We log the results. By default, the method
// logs the first 10 rows, but there is 13
// rows in our data. We also log the data types.
await firesInsideProvinces.logTable({ nbRowsToLog: 13, types: true });
// We can also log a bar chart directly in the terminal...
await firesInsideProvinces.logBarChart("nameEnglish", "burntArea");
// ... or make a fancier chart or map
// with Observable Plot (don't forget to install it)
// and save it to a file.
const chart = (data: unknown[]) =>
plot({
marginLeft: 170,
grid: true,
x: { tickFormat: (d) => `${d / 1_000_000}M`, label: "Burnt area (ha)" },
y: { label: null },
color: { scheme: "Reds" },
marks: [
barX(data, {
x: "burntArea",
y: "nameEnglish",
fill: "burntArea",
sort: { y: "-x" },
}),
],
});
await firesInsideProvinces.writeChart(chart, "./chart.png");
// And we can write the data to a parquet, json or csv file.
// For geospatial data, you can use writeGeoData to
// write geojson or geoparquet files.
await firesInsideProvinces.writeData("./firesInsideProvinces.parquet");
// We close everything.
await sdb.done();
Here's what you should see in your console if your run this script.

You'll also find a chart.png file and a firesInsideProvinces.parquet file in your folder.

该项目提供了易用高性能的TypeScript库,用于数据分析,高效处理大数据,但缺乏详细的文档和示例。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
总体来看,简单数据分析 是一款质量良好的AI工具,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | simple-data-analysis |
| 原始描述 | 开源AI工具:Easy-to-use and high-performance TypeScript library for data analysis. Works wit。⭐346 · TypeScript |
| Topics | installableaianalysisdata |
| GitHub | https://github.com/nshiab/simple-data-analysis |
| License | MIT |
| 语言 | TypeScript |
收录时间:2026-05-22 · 更新时间:2026-05-23 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。