[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-javascriptdata--danfojs":3,"tool-javascriptdata--danfojs":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",152630,2,"2026-04-12T23:33:54",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":78,"owner_twitter":77,"owner_website":77,"owner_url":79,"languages":80,"stars":89,"forks":90,"last_commit_at":91,"license":92,"difficulty_score":93,"env_os":94,"env_gpu":95,"env_ram":96,"env_deps":97,"category_tags":104,"github_topics":106,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":120,"updated_at":121,"faqs":122,"releases":153},7085,"javascriptdata\u002Fdanfojs","danfojs","Danfo.js is an open source, JavaScript library providing high performance, intuitive, and easy to use data structures for manipulating and processing structured data.","Danfo.js 是一款专为 JavaScript 环境打造的高性能开源数据分析库，旨在让开发者在浏览器或 Node.js 中也能轻松处理结构化数据。它深受 Python 领域著名的 Pandas 库启发，提供了相似的 API 设计，使得熟悉 Pandas 的用户能够零门槛上手，有效解决了前端生态中长期缺乏成熟、灵活数据操作工具的痛点。\n\n无论是数据清洗、缺失值处理，还是复杂的数据聚合与转换，Danfo.js 都能通过直观的 DataFrame 和 Series 数据结构高效完成。其独特亮点在于原生支持 TensorFlow.js，允许用户将数据对象无缝转换为张量（Tensor），极大地便利了前端机器学习模型的训练与推理。此外，它还内置了强大的分组操作、智能数据对齐、时间序列处理以及丰富的数据预处理功能（如独热编码、标准化等），并支持直接读取 CSV、Excel 等文件及交互式绘图。\n\n这款工具特别适合前端工程师、全栈开发者以及希望在 JavaScript 环境中进行数据科学探索的研究人员使用。如果你需要在 Web 端构建数据密集型应用或原型，Danfo.js 将是一个得力助手，让你无","Danfo.js 是一款专为 JavaScript 环境打造的高性能开源数据分析库，旨在让开发者在浏览器或 Node.js 中也能轻松处理结构化数据。它深受 Python 领域著名的 Pandas 库启发，提供了相似的 API 设计，使得熟悉 Pandas 的用户能够零门槛上手，有效解决了前端生态中长期缺乏成熟、灵活数据操作工具的痛点。\n\n无论是数据清洗、缺失值处理，还是复杂的数据聚合与转换，Danfo.js 都能通过直观的 DataFrame 和 Series 数据结构高效完成。其独特亮点在于原生支持 TensorFlow.js，允许用户将数据对象无缝转换为张量（Tensor），极大地便利了前端机器学习模型的训练与推理。此外，它还内置了强大的分组操作、智能数据对齐、时间序列处理以及丰富的数据预处理功能（如独热编码、标准化等），并支持直接读取 CSV、Excel 等文件及交互式绘图。\n\n这款工具特别适合前端工程师、全栈开发者以及希望在 JavaScript 环境中进行数据科学探索的研究人员使用。如果你需要在 Web 端构建数据密集型应用或原型，Danfo.js 将是一个得力助手，让你无需依赖后端即可实现完整的数据分析流程。","\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjavascriptdata_danfojs_readme_1ba86885945c.png\">\u003Cbr>\n\u003C\u002Fdiv>\n\n-----------------\n\n## Danfojs: powerful javascript data analysis toolkit \n![Node.js CI](https:\u002F\u002Fgithub.com\u002Fopensource9ja\u002Fdanfojs\u002Fworkflows\u002FNode.js%20CI\u002Fbadge.svg?branch=master)\n[![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjavascriptdata_danfojs_readme_0ba014d149cc.png)](https:\u002F\u002Fwww.jsdelivr.com\u002Fpackage\u002Fnpm\u002Fdanfojs)\n[![Coverage Status](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Fopensource9ja\u002Fdanfojs\u002Fbadge.svg)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fopensource9ja\u002Fdanfojs)\n![Twitter](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl?style=social&url=https%3A%2F%2Ftwitter.com%2FDanfoJs) \n\u003Cspan class=\"badge-patreon\">\u003Ca href=\"https:\u002F\u002Fwww.patreon.com\u002FbePatron?u=40496758\" title=\"Donate to this project using Patreon\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpatreon-donate-yellow.svg\" alt=\"Patreon donate button\" \u002F>\u003C\u002Fa>\u003C\u002Fspan>\n\n## What is it?\n\n**Danfo.js** is a javascript package that provides fast, flexible, and expressive data\nstructures designed to make working with \"relational\" or \"labeled\" data both\neasy and intuitive. It is heavily inspired by [Pandas](https:\u002F\u002Fpandas.pydata.org\u002Fpandas-docs\u002Fstable\u002F) library, and provides a similar API. This means that users familiar with [Pandas](https:\u002F\u002Fpandas.pydata.org\u002Fpandas-docs\u002Fstable\u002F), can easily pick up danfo.js. \n\n## Main Features\n\n  - Danfo.js is fast and supports Tensorflow.js tensors out of the box. This means you can [convert Danfo data structure](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fdataframe\u002Fdataframe.tensor) to Tensors.\n  - Easy handling of [missing-data](https:\u002F\u002Fdanfo.jsdata.org\u002Fgetting-started#missing-data) (represented as\n    `NaN`) in floating point as well as non-floating point data\n  - Size mutability: columns can be [inserted\u002Fdeleted](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fdataframe#combining-comparing-joining-merging) from DataFrame\n  - Automatic and explicit [alignment](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fdataframe#reindexing-selection-label-manipulation): objects can\n    be explicitly aligned to a set of labels, or the user can simply\n    ignore the labels and let `Series`, `DataFrame`, etc. automatically\n    align the data for you in computations\n  - Powerful, flexible [groupby](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgroupby) functionality to perform\n    split-apply-combine operations on data sets, for both aggregating\n    and transforming data\n  - Make it easy to convert Arrays, JSONs, List or Objects, Tensors and \n    differently-indexed data structures\n    into DataFrame objects\n  - Intelligent label-based [slicing](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fdataframe\u002Fdanfo.dataframe.loc), [fancy indexing](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fdataframe\u002Fdanfo.dataframe.iloc), and [querying](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fdataframe\u002Fdanfo.dataframe.query) of\n    large data sets\n  - Intuitive [merging](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgeneral-functions\u002Fdanfo.merge) and [joining](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgeneral-functions\u002Fdanfo.concat) data\n    sets\n  - Robust IO tools for loading data from [flat-files](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Finput-output)\n    (CSV, Json, Excel).\n  - Powerful, flexible and intutive API for [plotting](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fplotting) DataFrames and Series interactively.\n  - [Timeseries](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fseries#accessors)-specific functionality: date range\n    generation and date and time properties. \n  - Robust data preprocessing functions like [OneHotEncoders](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgeneral-functions\u002Fdanfo.onehotencoder), [LabelEncoders](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgeneral-functions\u002Fdanfo.labelencoder), and scalers like [StandardScaler](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgeneral-functions\u002Fdanfo.standardscaler) and [MinMaxScaler](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgeneral-functions\u002Fdanfo.minmaxscaler) are supported on DataFrame and Series\n\n\n## Installation\nThere are three ways to install and use Danfo.js in your application\n* For Nodejs applications, you can install the [__danfojs-node__]() version via package managers like yarn and\u002For npm:\n\n```bash\nnpm install danfojs-node\n\nor\n\nyarn add danfojs-node\n```\nFor client-side applications built with frameworks like React, Vue, Next.js, etc, you can install the [__danfojs__]() version:\n\n```bash\nnpm install danfojs\n\nor\n\nyarn add danfojs\n```\n\nFor use directly in HTML files, you can add the latest script tag from [JsDelivr](https:\u002F\u002Fwww.jsdelivr.com\u002Fpackage\u002Fnpm\u002Fdanfojs) to your HTML file:\n\n```html\n    \u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fdanfojs@1.1.2\u002Flib\u002Fbundle.js\">\u003C\u002Fscript>\n```\nSee all available versions [here](https:\u002F\u002Fwww.jsdelivr.com\u002Fpackage\u002Fnpm\u002Fdanfojs)\n\n### Quick Examples\n* [Danfojs with HTML and vanilla JavaScript on CodePen](https:\u002F\u002Fcodepen.io\u002Frisingodegua\u002Fpen\u002FbGpwyYW)\n* [Danfojs with React on Code Sandbox](https:\u002F\u002Fcodesandbox.io\u002Fs\u002Fusing-danfojs-in-react-dwpv54?file=\u002Fsrc\u002FApp.js)\n* [Danfojs on ObservableHq](https:\u002F\u002Fobservablehq.com\u002F@risingodegua\u002Fusing-danfojs-on-observablehq)\n* [Danfojs in Nodejs on Replit](https:\u002F\u002Freplit.com\u002F@RisingOdegua\u002FDanfojs-in-Nodejs)\n\n### Example Usage in the Browser\n```html\n\n\u003C!DOCTYPE html>\n\u003Chtml lang=\"en\">\n  \u003Chead>\n    \u003Cmeta charset=\"UTF-8\" \u002F>\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \u002F>\n    \u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fdanfojs@1.1.2\u002Flib\u002Fbundle.js\">\u003C\u002Fscript>\n\n    \u003Ctitle>Document\u003C\u002Ftitle>\n  \u003C\u002Fhead>\n\n  \u003Cbody>\n    \u003Cdiv id=\"div1\">\u003C\u002Fdiv>\n    \u003Cdiv id=\"div2\">\u003C\u002Fdiv>\n    \u003Cdiv id=\"div3\">\u003C\u002Fdiv>\n\n    \u003Cscript>\n\n      dfd.readCSV(\"https:\u002F\u002Fraw.githubusercontent.com\u002Fplotly\u002Fdatasets\u002Fmaster\u002Ffinance-charts-apple.csv\")\n          .then(df => {\n\n              df['AAPL.Open'].plot(\"div1\").box() \u002F\u002Fmakes a box plot\n\n              df.plot(\"div2\").table() \u002F\u002Fdisplay csv as table\n\n              new_df = df.setIndex({ column: \"Date\", drop: true }); \u002F\u002Fresets the index to Date column\n              new_df.head().print() \u002F\u002F\n              new_df.plot(\"div3\").line({\n                  config: {\n                      columns: [\"AAPL.Open\", \"AAPL.High\"]\n                  }\n              })  \u002F\u002Fmakes a timeseries plot\n\n          }).catch(err => {\n              console.log(err);\n          })\n    \u003C\u002Fscript>\n  \u003C\u002Fbody>\n\u003C\u002Fhtml>\n\n```\n\nOutput in Browser:\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjavascriptdata_danfojs_readme_0ddf3dfce9fa.gif)\n\n### Example usage in Nodejs\n\n```javascript\nconst dfd = require(\"danfojs-node\");\n\nconst file_url =\n  \"https:\u002F\u002Fweb.stanford.edu\u002Fclass\u002Farchive\u002Fcs\u002Fcs109\u002Fcs109.1166\u002Fstuff\u002Ftitanic.csv\";\ndfd\n  .readCSV(file_url)\n  .then((df) => {\n    \u002F\u002Fprints the first five columns\n    df.head().print();\n\n    \u002F\u002F Calculate descriptive statistics for all numerical columns\n    df.describe().print();\n\n    \u002F\u002Fprints the shape of the data\n    console.log(df.shape);\n\n    \u002F\u002Fprints all column names\n    console.log(df.columns);\n\n    \u002F\u002F \u002F\u002Fprints the inferred dtypes of each column\n    df.ctypes.print();\n\n    \u002F\u002Fselecting a column by subsetting\n    df[\"Name\"].print();\n\n    \u002F\u002Fdrop columns by names\n    let cols_2_remove = [\"Age\", \"Pclass\"];\n    let df_drop = df.drop({ columns: cols_2_remove, axis: 1 });\n    df_drop.print();\n\n    \u002F\u002Fselect columns by dtypes\n    let str_cols = df_drop.selectDtypes([\"string\"]);\n    let num_cols = df_drop.selectDtypes([\"int32\", \"float32\"]);\n    str_cols.print();\n    num_cols.print();\n\n    \u002F\u002Fadd new column to Dataframe\n\n    let new_vals = df[\"Fare\"].round(1);\n    df_drop.addColumn(\"fare_round\", new_vals, { inplace: true });\n    df_drop.print();\n\n    df_drop[\"fare_round\"].round(2).print(5);\n\n    \u002F\u002Fprints the number of occurence each value in the column\n    df_drop[\"Survived\"].valueCounts().print();\n\n    \u002F\u002Fprint the last ten elementa of a DataFrame\n    df_drop.tail(10).print();\n\n    \u002F\u002Fprints the number of missing values in a DataFrame\n    df_drop.isNa().sum().print();\n  })\n  .catch((err) => {\n    console.log(err);\n  });\n\n```\nOutput in Node Console:\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjavascriptdata_danfojs_readme_9e26973c29da.gif)\n## Notebook support\n* VsCode nodejs notebook extension now supports Danfo.js. See guide [here](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=donjayamanne.typescript-notebook)\n* ObservableHQ Notebooks. See example notebook [here](https:\u002F\u002Fobservablehq.com\u002F@risingodegua\u002Fusing-danfojs-on-observablehq)\n\n#### [See the Official Getting Started Guide](https:\u002F\u002Fdanfo.jsdata.org\u002Fgetting-started)\n\n## Documentation\nThe official documentation can be found [here](https:\u002F\u002Fdanfo.jsdata.org)\n\n## Discussion and Development\nDevelopment discussions take place [here](https:\u002F\u002Fgithub.com\u002Fopensource9ja\u002Fdanfojs\u002Fdiscussions). \n\n## Contributing to Danfo\nAll contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome. A detailed overview on how to contribute can be found in the [contributing guide](https:\u002F\u002Fdanfo.jsdata.org\u002Fcontributing-guide).\n\n#### Licence [MIT](https:\u002F\u002Fgithub.com\u002Fopensource9ja\u002Fdanfojs\u002Fblob\u002Fmaster\u002FLICENCE)\n","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjavascriptdata_danfojs_readme_1ba86885945c.png\">\u003Cbr>\n\u003C\u002Fdiv>\n\n-----------------\n\n## Danfojs：功能强大的 JavaScript 数据分析工具包\n![Node.js CI](https:\u002F\u002Fgithub.com\u002Fopensource9ja\u002Fdanfojs\u002Fworkflows\u002FNode.js%20CI\u002Fbadge.svg?branch=master)\n[![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjavascriptdata_danfojs_readme_0ba014d149cc.png)](https:\u002F\u002Fwww.jsdelivr.com\u002Fpackage\u002Fnpm\u002Fdanfojs)\n[![覆盖率状态](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Fopensource9ja\u002Fdanfojs\u002Fbadge.svg)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fopensource9ja\u002Fdanfojs)\n![Twitter](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl?style=social&url=https%3A%2F%2Ftwitter.com%2FDanfoJs) \n\u003Cspan class=\"badge-patreon\">\u003Ca href=\"https:\u002F\u002Fwww.patreon.com\u002FbePatron?u=40496758\" title=\"通过 Patreon 向本项目捐款\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpatreon-donate-yellow.svg\" alt=\"Patreon 捐款按钮\" \u002F>\u003C\u002Fa>\u003C\u002Fspan>\n\n## 它是什么？\n\n**Danfo.js** 是一个 JavaScript 库，提供了快速、灵活且表达力强的数据结构，旨在让处理“关系型”或“带标签”数据既简单又直观。它深受 [Pandas](https:\u002F\u002Fpandas.pydata.org\u002Fpandas-docs\u002Fstable\u002F) 库的启发，并提供了类似的 API。这意味着熟悉 [Pandas](https:\u002F\u002Fpandas.pydata.org\u002Fpandas-docs\u002Fstable\u002F) 的用户可以轻松上手 danfo.js。\n\n## 主要特性\n\n  - Danfo.js 速度快，并且开箱即支持 Tensorflow.js 张量。这意味着您可以将 Danfo 数据结构[转换为张量](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fdataframe\u002Fdataframe.tensor)。\n  - 轻松处理浮点数和非浮点数数据中的[缺失值](https:\u002F\u002Fdanfo.jsdata.org\u002Fgetting-started#missing-data)（用 `NaN` 表示）。\n  - 尺寸可变性：可以在 DataFrame 中[插入\u002F删除列](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fdataframe#combining-comparing-joining-merging)。\n  - 自动和显式[对齐](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fdataframe#reindexing-selection-label-manipulation)：对象可以显式地对齐到一组标签，或者用户也可以忽略标签，让 `Series`、`DataFrame` 等在计算中自动为您对齐数据。\n  - 强大而灵活的[分组](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgroupby)功能，可用于对数据集执行拆分-应用-合并操作，以实现数据的聚合和转换。\n  - 能够轻松地将数组、JSON、列表或对象、张量以及不同索引的数据结构转换为 DataFrame 对象。\n  - 针对大型数据集的智能基于标签的[切片](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fdataframe\u002Fdanfo.dataframe.loc)、[高级索引](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fdataframe\u002Fdanfo.dataframe.iloc)和[查询](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fdataframe\u002Fdanfo.dataframe.query)。\n  - 直观的[合并](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgeneral-functions\u002Fdanfo.merge)和[连接](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgeneral-functions\u002Fdanfo.concat)数据集。\n  - 强大的 IO 工具，用于从[平面文件](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Finput-output)（CSV、Json、Excel）加载数据。\n  - 功能强大、灵活且直观的 API，用于交互式绘制 DataFrame 和 Series。\n  - 针对[时间序列](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fseries#accessors)的特定功能：日期范围生成以及日期和时间属性。\n  - 支持 DataFrame 和 Series 上的稳健数据预处理函数，如 [OneHotEncoders](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgeneral-functions\u002Fdanfo.onehotencoder)、[LabelEncoders](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgeneral-functions\u002Fdanfo.labelencoder)，以及像 [StandardScaler](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgeneral-functions\u002Fdanfo.standardscaler) 和 [MinMaxScaler](https:\u002F\u002Fdanfo.jsdata.org\u002Fapi-reference\u002Fgeneral-functions\u002Fdanfo.minmaxscaler) 这样的缩放器。\n\n## 安装\n您可以通过三种方式在您的应用程序中安装和使用 Danfo.js：\n* 对于 Node.js 应用程序，您可以通过 yarn 和\u002F或 npm 等包管理器安装[__danfojs-node__]() 版本：\n\n```bash\nnpm install danfojs-node\n\n或\n\nyarn add danfojs-node\n```\n对于使用 React、Vue、Next.js 等框架构建的客户端应用程序，您可以安装[__danfojs__]() 版本：\n\n```bash\nnpm install danfojs\n\n或\n\nyarn add danfojs\n```\n\n如果您想直接在 HTML 文件中使用，可以从 [JsDelivr](https:\u002F\u002Fwww.jsdelivr.com\u002Fpackage\u002Fnpm\u002Fdanfojs) 添加最新的脚本标签到您的 HTML 文件中：\n\n```html\n    \u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fdanfojs@1.1.2\u002Flib\u002Fbundle.js\">\u003C\u002Fscript>\n```\n所有可用版本请参见[这里](https:\u002F\u002Fwww.jsdelivr.com\u002Fpackage\u002Fnpm\u002Fdanfojs)。\n\n### 快速示例\n* [CodePen 上的 Danfojs 与 HTML 和原生 JavaScript](https:\u002F\u002Fcodepen.io\u002Frisingodegua\u002Fpen\u002FbGpwyYW)\n* [Code Sandbox 上的 Danfojs 与 React](https:\u002F\u002Fcodesandbox.io\u002Fs\u002Fusing-danfojs-in-react-dwpv54?file=\u002Fsrc\u002FApp.js)\n* [ObservableHq 上的 Danfojs](https:\u002F\u002Fobservablehq.com\u002F@risingodegua\u002Fusing-danfojs-on-observablehq)\n* [Replit 上的 Danfojs 在 Node.js 中](https:\u002F\u002Freplit.com\u002F@RisingOdegua\u002FDanfojs-in-Nodejs)\n\n### 浏览器中的使用示例\n```html\n\n\u003C!DOCTYPE html>\n\u003Chtml lang=\"en\">\n  \u003Chead>\n    \u003Cmeta charset=\"UTF-8\" \u002F>\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \u002F>\n    \u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fdanfojs@1.1.2\u002Flib\u002Fbundle.js\">\u003C\u002Fscript>\n\n    \u003Ctitle>文档\u003C\u002Ftitle>\n  \u003C\u002Fhead>\n\n  \u003Cbody>\n    \u003Cdiv id=\"div1\">\u003C\u002Fdiv>\n    \u003Cdiv id=\"div2\">\u003C\u002Fdiv>\n    \u003Cdiv id=\"div3\">\u003C\u002Fdiv>\n\n    \u003Cscript>\n\n      dfd.readCSV(\"https:\u002F\u002Fraw.githubusercontent.com\u002Fplotly\u002Fdatasets\u002Fmaster\u002Ffinance-charts-apple.csv\")\n          .then(df => {\n\n              df['AAPL.Open'].plot(\"div1\").box() \u002F\u002F绘制箱线图\n\n              df.plot(\"div2\").table() \u002F\u002F以表格形式显示 CSV\n\n              new_df = df.setIndex({ column: \"Date\", drop: true }); \u002F\u002F将索引重置为 Date 列\n              new_df.head().print() \u002F\u002F\n              new_df.plot(\"div3\").line({\n                  config: {\n                      columns: [\"AAPL.Open\", \"AAPL.High\"]\n                  }\n              })  \u002F\u002F绘制时间序列图\n\n          }).catch(err => {\n              console.log(err);\n          })\n    \u003C\u002Fscript>\n  \u003C\u002Fbody>\n\u003C\u002Fhtml>\n\n```\n\n浏览器中的输出：\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjavascriptdata_danfojs_readme_0ddf3dfce9fa.gif)\n\n### Node.js 中的示例用法\n\n```javascript\nconst dfd = require(\"danfojs-node\");\n\nconst file_url =\n  \"https:\u002F\u002Fweb.stanford.edu\u002Fclass\u002Farchive\u002Fcs\u002Fcs109\u002Fcs109.1166\u002Fstuff\u002Ftitanic.csv\";\ndfd\n  .readCSV(file_url)\n  .then((df) => {\n    \u002F\u002F 打印前五行数据\n    df.head().print();\n\n    \u002F\u002F 计算所有数值列的描述性统计信息\n    df.describe().print();\n\n    \u002F\u002F 打印数据的形状\n    console.log(df.shape);\n\n    \u002F\u002F 打印所有列名\n    console.log(df.columns);\n\n    \u002F\u002F 打印每列推断出的数据类型\n    df.ctypes.print();\n\n    \u002F\u002F 通过子集选择一列\n    df[\"Name\"].print();\n\n    \u002F\u002F 按列名删除列\n    let cols_2_remove = [\"Age\", \"Pclass\"];\n    let df_drop = df.drop({ columns: cols_2_remove, axis: 1 });\n    df_drop.print();\n\n    \u002F\u002F 按数据类型选择列\n    let str_cols = df_drop.selectDtypes([\"string\"]);\n    let num_cols = df_drop.selectDtypes([\"int32\", \"float32\"]);\n    str_cols.print();\n    num_cols.print();\n\n    \u002F\u002F 向 DataFrame 添加新列\n\n    let new_vals = df[\"Fare\"].round(1);\n    df_drop.addColumn(\"fare_round\", new_vals, { inplace: true });\n    df_drop.print();\n\n    df_drop[\"fare_round\"].round(2).print(5);\n\n    \u002F\u002F 打印该列中每个值出现的次数\n    df_drop[\"Survived\"].valueCounts().print();\n\n    \u002F\u002F 打印 DataFrame 的最后十行\n    df_drop.tail(10).print();\n\n    \u002F\u002F 打印 DataFrame 中缺失值的数量\n    df_drop.isNa().sum().print();\n  })\n  .catch((err) => {\n    console.log(err);\n  });\n\n```\nNode 控制台输出：\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjavascriptdata_danfojs_readme_9e26973c29da.gif)\n## 笔记本支持\n* VSCode 的 Node.js 笔记本扩展现在支持 Danfo.js。请参阅[此处](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=donjayamanne.typescript-notebook)的指南。\n* ObservableHQ 笔记本。请参阅[此处](https:\u002F\u002Fobservablehq.com\u002F@risingodegua\u002Fusing-danfojs-on-observablehq)的示例笔记本。\n\n#### [查看官方入门指南](https:\u002F\u002Fdanfo.jsdata.org\u002Fgetting-started)\n\n## 文档\n官方文档可以[在这里](https:\u002F\u002Fdanfo.jsdata.org)找到。\n\n## 讨论与开发\n开发相关的讨论可以在[这里](https:\u002F\u002Fgithub.com\u002Fopensource9ja\u002Fdanfojs\u002Fdiscussions)进行。\n\n## 贡献 Danfo\n我们欢迎所有贡献，包括错误报告、修复、文档改进、功能增强和创意建议。有关如何贡献的详细说明，请参阅[贡献指南](https:\u002F\u002Fdanfo.jsdata.org\u002Fcontributing-guide)。\n\n#### 许可证 [MIT](https:\u002F\u002Fgithub.com\u002Fopensource9ja\u002Fdanfojs\u002Fblob\u002Fmaster\u002FLICENCE)","# Danfo.js 快速上手指南\n\nDanfo.js 是一个功能强大的 JavaScript 数据分析工具包，灵感来源于 Python 的 Pandas 库。它提供了快速、灵活的数据结构（DataFrame 和 Series），旨在让处理关系型或标记数据变得简单直观，并原生支持 TensorFlow.js。\n\n## 环境准备\n\n*   **系统要求**：支持 Node.js (v12+) 或现代浏览器（Chrome, Firefox, Edge, Safari）。\n*   **前置依赖**：\n    *   **Node.js 环境**：需安装 Node.js 和 npm\u002Fyarn 包管理器。\n    *   **浏览器环境**：无需额外构建工具，直接引入脚本即可；若使用 React\u002FVue 等框架，需具备相应的前端开发环境。\n    *   **可选**：若需在 VS Code 中运行 Notebook，建议安装 `donjayamanne.typescript-notebook` 扩展。\n\n## 安装步骤\n\n根据你的运行环境，选择以下一种安装方式：\n\n### 1. Node.js 应用\n适用于后端脚本或服务器端数据处理。\n```bash\nnpm install danfojs-node\n# 或者\nyarn add danfojs-node\n```\n\n### 2. 前端应用 (React, Vue, Next.js 等)\n适用于客户端单页应用。\n```bash\nnpm install danfojs\n# 或者\nyarn add danfojs\n```\n\n### 3. 直接在 HTML 中使用\n适用于纯静态页面或快速原型验证。国内用户若访问 jsDelivr 较慢，可尝试替换为其他 CDN，但官方推荐如下：\n```html\n\u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fdanfojs@1.1.2\u002Flib\u002Fbundle.js\">\u003C\u002Fscript>\n```\n\n## 基本使用\n\n### 场景一：在浏览器中运行\n以下示例展示了如何读取远程 CSV 文件、查看数据表格以及绘制图表。\n\n```html\n\u003C!DOCTYPE html>\n\u003Chtml lang=\"en\">\n  \u003Chead>\n    \u003Cmeta charset=\"UTF-8\" \u002F>\n    \u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fdanfojs@1.1.2\u002Flib\u002Fbundle.js\">\u003C\u002Fscript>\n    \u003Ctitle>Danfo.js Demo\u003C\u002Ftitle>\n  \u003C\u002Fhead>\n  \u003Cbody>\n    \u003C!-- 定义图表和表格的容器 -->\n    \u003Cdiv id=\"div1\">\u003C\u002Fdiv>\n    \u003Cdiv id=\"div2\">\u003C\u002Fdiv>\n    \u003Cdiv id=\"div3\">\u003C\u002Fdiv>\n\n    \u003Cscript>\n      \u002F\u002F 读取 CSV 数据\n      dfd.readCSV(\"https:\u002F\u002Fraw.githubusercontent.com\u002Fplotly\u002Fdatasets\u002Fmaster\u002Ffinance-charts-apple.csv\")\n          .then(df => {\n              \u002F\u002F 1. 绘制箱线图\n              df['AAPL.Open'].plot(\"div1\").box();\n\n              \u002F\u002F 2. 以表格形式展示数据\n              df.plot(\"div2\").table();\n\n              \u002F\u002F 3. 设置索引并绘制折线图\n              let new_df = df.setIndex({ column: \"Date\", drop: true });\n              new_df.head().print(); \u002F\u002F 在控制台打印前几行\n              \n              new_df.plot(\"div3\").line({\n                  config: {\n                      columns: [\"AAPL.Open\", \"AAPL.High\"]\n                  }\n              });\n          }).catch(err => {\n              console.log(err);\n          });\n    \u003C\u002Fscript>\n  \u003C\u002Fbody>\n\u003C\u002Fhtml>\n```\n\n### 场景二：在 Node.js 中运行\n以下示例展示了数据加载、描述性统计、列操作及缺失值检查。\n\n```javascript\nconst dfd = require(\"danfojs-node\");\n\nconst file_url = \"https:\u002F\u002Fweb.stanford.edu\u002Fclass\u002Farchive\u002Fcs\u002Fcs109\u002Fcs109.1166\u002Fstuff\u002Ftitanic.csv\";\n\ndfd.readCSV(file_url)\n  .then((df) => {\n    \u002F\u002F 打印前 5 行\n    df.head().print();\n\n    \u002F\u002F 计算数值列的描述性统计信息\n    df.describe().print();\n\n    \u002F\u002F 打印数据形状 (行数，列数)\n    console.log(df.shape);\n\n    \u002F\u002F 打印所有列名\n    console.log(df.columns);\n\n    \u002F\u002F 打印每列推断的数据类型\n    df.ctypes.print();\n\n    \u002F\u002F 选取单列\n    df[\"Name\"].print();\n\n    \u002F\u002F 删除指定列\n    let cols_2_remove = [\"Age\", \"Pclass\"];\n    let df_drop = df.drop({ columns: cols_2_remove, axis: 1 });\n    df_drop.print();\n\n    \u002F\u002F 按数据类型筛选列\n    let str_cols = df_drop.selectDtypes([\"string\"]);\n    let num_cols = df_drop.selectDtypes([\"int32\", \"float32\"]);\n    str_cols.print();\n    num_cols.print();\n\n    \u002F\u002F 添加新列 (对 Fare 列四舍五入)\n    let new_vals = df[\"Fare\"].round(1);\n    df_drop.addColumn(\"fare_round\", new_vals, { inplace: true });\n    df_drop.print();\n\n    \u002F\u002F 统计某列值的出现次数\n    df_drop[\"Survived\"].valueCounts().print();\n\n    \u002F\u002F 检查缺失值数量\n    df_drop.isNa().sum().print();\n  })\n  .catch((err) => {\n    console.log(err);\n  });\n```\n\n运行上述 Node.js 代码后，你将在控制台看到格式化的数据输出和统计结果。更多高级功能（如数据预处理编码器、时间序列处理等）请参考官方文档。","某前端数据分析师需要在浏览器端直接处理并可视化一份包含缺失值和类别特征的百万级电商用户行为 CSV 日志，以便实时生成洞察报告。\n\n### 没有 danfojs 时\n- 开发者必须手动编写复杂的嵌套循环来解析 CSV 字符串，代码冗长且极易出错。\n- 处理缺失数据（如空字段）需要逐个遍历数组进行判断和填充，逻辑分散难以维护。\n- 对类别数据进行机器学习预处理（如 OneHot 编码）需从零实现算法，耗时且性能低下。\n- 无法直接将清洗后的数据转换为 Tensorflow.js 张量格式，导致前后端模型对接困难。\n- 缺乏原生的分组聚合（groupby）功能，统计各渠道转化率时需要大量临时变量辅助计算。\n\n### 使用 danfojs 后\n- 调用 `readCSV` 即可一键加载数据为 DataFrame 对象，自动识别表头与数据类型，瞬间完成结构化。\n- 利用内置的 `dropNa` 或 `fillNa` 方法，一行代码即可优雅地处理全表缺失值，无需关心底层索引。\n- 直接调用 `oneHotEncoder` 和 `standardScaler` 接口，快速完成特征工程，无缝准备模型输入。\n- 通过 `tensor` 属性将处理好的数据帧直接转为 Tensorflow.js 张量，实现浏览器端推理零摩擦对接。\n- 使用链式调用的 `groupBy` 和 `agg` 方法，直观地完成多维度数据透视与聚合分析，逻辑清晰易读。\n\ndanfojs 将繁琐的底层数据操作封装为直观的 API，让 JavaScript 开发者能在浏览器中享受如同 Python Pandas 般高效流畅的数据分析体验。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjavascriptdata_danfojs_9e26973c.gif","javascriptdata","JSdata","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fjavascriptdata_b9a04661.png","Building JavaScript tools for Data Science, Machine Learning and Deep Learning.",null,"info@jsdata.org","https:\u002F\u002Fgithub.com\u002Fjavascriptdata",[81,85],{"name":82,"color":83,"percentage":84},"TypeScript","#3178c6",73.9,{"name":86,"color":87,"percentage":88},"JavaScript","#f1e05a",26.1,5051,225,"2026-04-10T19:11:56","MIT",1,"Linux, macOS, Windows","未说明 (支持 Tensorflow.js，可在 CPU 或 GPU 上运行，具体取决于底层 TF.js 配置)","未说明",{"notes":98,"python":99,"dependencies":100},"该工具是基于 JavaScript 的数据分析库，灵感来源于 Python 的 Pandas。它分为两个版本：'danfojs-node' 用于 Node.js 后端应用，'danfojs' 用于浏览器端（如 React, Vue, Next.js）或直接通过 CDN 在 HTML 中使用。无需 Python 环境。支持直接在浏览器中进行交互式绘图和数据预处理。","不需要 (基于 JavaScript\u002FNode.js)",[101,102,103],"danfojs-node (Node.js 环境)","danfojs (浏览器环境)","tensorflow.js (隐式依赖)",[14,16,15,105],"其他",[107,108,109,110,111,112,113,114,64,115,116,117,118,119],"data-analytics","data-science","pandas","data-manipulation","tensors","dataframe","javascript","data-analysis","stream-data","stream-processing","tensorflow","table","plotting-charts","2026-03-27T02:49:30.150509","2026-04-13T17:39:55.921888",[123,128,133,138,143,148],{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},31853,"如何在 Vue 3 项目中正确导入和使用 Danfo.js？","在 Vue 3 中，建议通过 npm 安装浏览器版本：`npm install danfojs`。不要在 main.js 中使用 `app.use()` 注册它，因为 Danfo.js 不是一个 Vue 插件。正确的做法是在需要使用的组件文件中直接导入：`import * as dfd from \"danfojs\";`。然后即可在 setup() 函数或其他方法中使用 `dfd.DataFrame` 等 API。注意：文档中部分函数名（如 to_datetime）可能已过时，实际应使用驼峰命名（如 toDateTime），若遇到 TypeScript 类型错误，请检查官方最新示例或提交 PR 更新类型定义。","https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fissues\u002F50",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},31854,"在 Windows 上安装 danfojs-node 时出现 'tfjs_binding.node not found' 错误怎么办？","该问题通常由 Node.js 版本与 Electron 或其他运行时环境不匹配引起。解决方案是确保安装的 Node.js 版本与项目所用运行时（如 Electron）的版本一致。例如，如果 Electron 使用的是 Node 12.16.3，则需将全局或项目本地的 Node.js 切换至该版本。操作步骤：1. 检查当前 Electron 使用的 Node 版本；2. 使用 nvm 或 n 工具切换到对应 Node 版本；3. 删除 node_modules 和 package-lock.json；4. 重新运行 `npm install danfojs-node`。","https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fissues\u002F20",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},31855,"安装 danfojs-node 时出现 'ENOENT: no such file or directory' 或 symlink 失败错误如何解决？","此错误常见于 Windows 系统，源于 @tensorflow\u002Ftfjs-node 在构建原生模块时无法正确复制或链接 tensorflow.dll 文件。尝试以下方案：1. 降级 Node.js 到稳定版本（如 12.18.0）；2. 完全清理环境：删除 node_modules、package-lock.json，并从 package.json 中临时移除 @tensorflow\u002Ftfjs-node 依赖；3. 重新运行 `npm install danfojs-node`；4. 若仍失败，可考虑以管理员身份运行命令行，或手动下载对应版本的 libtensorflow 并放置到指定目录。目前该问题在部分 Windows 配置下仍存在，社区正在寻求更稳定的解决方案。","https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fissues\u002F157",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},31856,"Series 排序后索引丢失，且 toJSON()\u002FtoCSV() 不包含索引怎么办？","该问题已在 v1.0.2 版本中修复。升级后，sortValues() 将保留原始索引，同时新增 `at` 和 `iat` 方法用于按标签或位置访问数据。对于 toJSON() 和 toCSV()，现在默认会包含索引信息，无需手动拼接。若仍需自定义行为，可通过选项控制是否丢弃索引。建议所有用户升级至最新版以获得完整功能。","https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fissues\u002F357",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},31857,"对 DataFrame 执行 query 操作无匹配结果时，为何抛出 'File format not supported' 错误？","这是一个已知 bug，在早期版本中当 query 条件无匹配行时，库错误地抛出了不支持的文件格式异常，而非返回空 DataFrame。该问题已在后续 TypeScript 重构版本（见 Issue #235）中修复。请确保升级到最新版本，此时无匹配结果将正确返回一个空的 DataFrame 对象，符合预期行为。","https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fissues\u002F37",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},31858,"Danfo.js 是否与 Vite 构建工具兼容？","早期版本存在与 Vite 不兼容的问题，主要由于 Danfo.js 依赖的某些 Node.js 原生模块或打包方式不被 Vite 支持。建议：1. 使用专为浏览器设计的 `danfojs` 包（非 `danfojs-node`）；2. 在 vite.config.js 中配置 resolve.alias 或 define 以屏蔽不必要的 Node 内置模块引用；3. 若问题依旧，可尝试在 import 时使用动态导入（dynamic import）或在特定条件下加载。维护者正持续优化对现代构建工具的支持，请关注最新版本更新。","https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fissues\u002F594",[154,159,164,169,174,179,184,189,194,199,204,209,214,219,224,229,234,239,244,249],{"id":155,"version":156,"summary_zh":157,"released_at":158},239069,"v1.2.0","## 变更内容\n* 修复 `webpack.config.js`，使其与 `package.json` 保持一致，由 @pensono 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F516 中完成\n* 升级 SheetJS 依赖，由 @geoextra 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F575 中完成\n* 修复 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fissues\u002F569，由 @acctsi1 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F570 中完成\n* 修正 559 replace 不接受假值字符串或数字的问题，由 @babennettdev 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F562 中完成\n* 为 NDFrame 的 toCSV 和 toJSON 方法添加函数重载，以便 danfojs-base 等…，由 @kitfit-dave 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F566 中完成\n* 杂项（依赖）：将 \u002Fsrc\u002Fdanfojs-node 中的 word-wrap 从 1.2.3 升级到 1.2.4，由 @dependabot 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F590 中完成\n* 杂项（依赖）：将 \u002Fsrc\u002Fdanfojs-base 中的 word-wrap 从 1.2.3 升级到 1.2.4，由 @dependabot 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F588 中完成\n* 杂项（依赖）：将 \u002Fsrc\u002Fdanfojs-browser 中的 word-wrap 从 1.2.3 升级到 1.2.4，由 @dependabot 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F589 中完成\n* 杂项（依赖）：将 \u002Fsrc\u002Fdanfojs-base 中的 get-func-name 从 2.0.0 升级到 2.0.2，由 @dependabot 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F600 中完成\n* 杂项（依赖）：将 \u002Fsrc\u002Fdanfojs-browser 中的 get-func-name 从 2.0.0 升级到 2.0.2，由 @dependabot 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F601 中完成\n* 修复：针对测试的修复，由 @ekynoxe 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F603 中完成\n* 修复\u002F594 导出问题，由 @ekynoxe 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F604 中完成\n* 允许用户处理错误，由 @nucoinha 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F638 中完成\n* 杂项（依赖）：将 \u002Fsrc\u002Fdanfojs-browser 中的 elliptic 从 6.5.4 升级到 6.6.1，由 @dependabot 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F655 中完成\n* 更新 io.excel.ts，由 @lyhue1991 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F652 中完成\n* 修复 CSV 解析中未使用 dtype 的问题，由 @risenW 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F657 中完成\n* 修复 bigInt 类型下 isEmpty 的 bug，由 @risenW 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F661 中完成\n\n## 新贡献者\n* @pensono 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F516 中完成了首次贡献\n* @geoextra 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F575 中完成了首次贡献\n* @acctsi1 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F570 中完成了首次贡献\n* @babennettdev 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F562 中完成了首次贡献\n* @kitfit-dave 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F566 中完成了首次贡献\n* @ekynoxe 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F603 中完成了首次贡献\n* @nucoinha 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F638 中完成了首次贡献\n* @lyhue1991 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F652 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fcompare\u002Fv1.1.2...v1.2.0","2025-04-03T22:37:13",{"id":160,"version":161,"summary_zh":162,"released_at":163},239070,"v1.1.2","## 变更内容\n* 由 @kgeis 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F469 中修复了 df.apply 文档中的复制粘贴错误。\n* 由 @dcrescim 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F447 中使用 esbuild 构建了 ESM 打包。\n* 由 @igonro 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F419 中修复了无效的 assert.throws 语句。\n* 杂项（依赖）：在 \u002Fsrc\u002Fdanfojs-browser 中将 shell-quote 从 1.7.2 升级到 1.7.3，由 @dependabot 完成，见 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F477。\n* 杂项（依赖）：在 \u002Fsrc\u002Fdanfojs-browser 中将 terser 从 5.11.0 升级到 5.14.2，由 @dependabot 完成，见 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F474。\n* 杂项（依赖）：在 \u002Fsrc\u002Fdanfojs-base 中将 terser 从 5.10.0 升级到 5.14.2，由 @dependabot 完成，见 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F473。\n* 允许 Series.append() 使用零值，修复了 #486，由 @BowTiedAztec 完成，见 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F487。\n* 由 @risenW 添加了针对 io 函数的错误处理程序，见 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F503。\n* 杂项（依赖）：在 \u002Fsrc\u002Fdanfojs-node 中升级了 json-schema 和 jsprim，由 @dependabot 完成，见 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F504。\n* 由 @risenW 添加了对 Excel 解析选项参数的支持，见 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F505。\n* 杂项：添加了对 datetime 的默认支持，由 @risenW 完成，见 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F511。\n* 主分支合并，由 @steveoni 完成，见 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F478。\n\n## 新贡献者\n* @kgeis 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F469 中完成了首次贡献。\n* @BowTiedAztec 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F487 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fcompare\u002Fv1.1.1...v1.1.2","2022-10-12T15:34:13",{"id":165,"version":166,"summary_zh":167,"released_at":168},239071,"v1.1.1","## 变更内容\n* 修复：当 `values` 为空字符串时，`fillNa` 会抛出错误，由 @ankitskvmdam 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F441 中修复。\n* 修复浏览器端与 Node.js 环境下 `readCSV` 方法解析结果不一致的问题，由 @dcrescim 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F443 中修复。\n* 修复客户端库中导入时出现的中断问题。\n\n## 新贡献者\n* @ankitskvmdam 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F441 中完成了首次贡献。\n* @dcrescim 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F443 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fcompare\u002Fv1.1.0...v1.1.1","2022-04-20T21:43:45",{"id":170,"version":171,"summary_zh":172,"released_at":173},239072,"v1.1.0","## 变更内容\n* 在 @risenW 的贡献下，通过 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F440 弃用了 Frame 和 Series 中的 toJSON、toCSV 和 toExcel 方法。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fcompare\u002Fv1.0.5...v1.1.0","2022-04-04T10:14:03",{"id":175,"version":176,"summary_zh":177,"released_at":178},239073,"v1.0.5","## 变更内容\n* 功能新增：@NeonSpork 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F414 中为 DataFrame 添加了 `diff()` 函数。\n* 修复：@igonro 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F417 中修复了空 DataFrame 不会添加列信息的问题。\n* 功能新增：@NeonSpork 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F418 中为 DataFrame 添加了 `pctChange()`，并为 DataFrame 的 `$MathOps` 模块添加了 `divNoNan()`。\n* 测试：@NeonSpork 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F422 中补充了 `diff()` 和 `pctChange()` 的缺失单元测试。\n* 修复\u002F破坏性更改：@risenW 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F438 中修复了导入相关的问题。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fcompare\u002Fv1.0.3...v1.0.5","2022-04-02T13:24:36",{"id":180,"version":181,"summary_zh":182,"released_at":183},239074,"v1.0.3","## 变更内容\n* @steveoni 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F367 中将 `max` 添加到算术运算列表中\n* @adamgilman 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F393 中将 `lenght` 修正为 `length`\n* @risenW 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F395 中修复了多个 bug\n* @igonro 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F398 中修复了 `groupby` 检查列数据类型错误的 bug\n* @NeonSpork 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F411 中通过在测试中显式指定类型，使 TypeScript 能够成功编译\n* @risenW 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F415 中引入了 ES 模块支持\n\n## 新贡献者\n* @adamgilman 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F393 中完成了首次贡献\n* @igonro 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F398 中完成了首次贡献\n* @NeonSpork 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F411 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fcompare\u002Fv1.0.2...v1.0.3","2022-03-08T08:11:29",{"id":185,"version":186,"summary_zh":187,"released_at":188},239075,"v1.0.2","## 变更内容\n* 更新 TensorFlow 版本，以修复 M1 芯片不兼容问题，由 @risenW 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F358 中完成\n* 新增 `iat` 和 `at` 功能，由 @risenW 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F359 中完成\n* 修复按值排序的问题，由 @risenW 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F360 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fcompare\u002Fv1.0.1...v1.0.2","2022-01-19T13:47:37",{"id":190,"version":191,"summary_zh":192,"released_at":193},239076,"v1.0.1","## 变更内容\n* 由 @Devwulf 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F347 中为 DataFrame.rename 的映射器添加了类型注解。\n* 由 @Devwulf 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F351 中添加了缺失的 groupby.std() 方法。\n* 由 @dependabot 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F352 中将 \u002Fsrc\u002Fdanfojs-browser 下的 follow-redirects 从 1.13.1 升级至 1.14.7。\n* 由 @dependabot 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F353 中将 \u002Fsrc\u002Fdanfojs-base 下的 follow-redirects 从 1.14.6 升级至 1.14.7。\n\n## 新贡献者\n* @Devwulf 在 https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fpull\u002F347 中完成了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fcompare\u002Fv1.0.0...v1.0.1","2022-01-16T12:13:48",{"id":195,"version":196,"summary_zh":197,"released_at":198},239077,"v1.0.0","重大更新。v1 之前版本的用户请参阅迁移[指南](https:\u002F\u002Fdanfo.jsdata.org\u002Fexamples\u002Fmigrating-to-the-stable-version-of-danfo.js)。\n\n## 新特性\n* 完整的 TypeScript 支持\n* streamCsvTransforme ==> 可管道化的流转换器，用于增量式地转换 DataFrame\n* streamJSON ==> 支持将本地或远程 JSON 文件以流的方式加载为 DataFrame。\n* streamCSV ==> 支持将本地或远程 CSV 文件以流的方式加载为 DataFrame。\n* openCsvInputStream ==> 将本地\u002F远程 CSV 文件以可读流的形式打开\n* writeCsvOutputStream ==> 将本地\u002F远程 CSV 文件以可写流的形式打开\n* https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fissues\u002F325\n* https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fissues\u002F296\n\n## Bug 修复\n* https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fissues\u002F335\n* https:\u002F\u002Fgithub.com\u002Fjavascriptdata\u002Fdanfojs\u002Fissues\u002F338\n\n贡献者：@risenW @steveoni","2022-01-12T16:14:08",{"id":200,"version":201,"summary_zh":202,"released_at":203},239078,"v0.3.4","修复了问题 #295、#302、#316、#315、#297","2021-12-05T21:08:59",{"id":205,"version":206,"summary_zh":207,"released_at":208},239079,"v0.3.3","Minor patch","2021-10-10T20:09:37",{"id":210,"version":211,"summary_zh":212,"released_at":213},239080,"v0.3.2","Minor patch update for column name display after aggregation functions like sum, mean, var, are applied to a column axis. ","2021-10-02T14:28:36",{"id":215,"version":216,"summary_zh":217,"released_at":218},239081,"v0.3.1","## New Features\r\n* Ability to create empty frames\r\n* Flag for toggling between low\u002Fhigh memory mode\r\n* Inplace support for all mutating operations\r\n* Ability to set Configuration values on frame creation\r\n* Support boolean mask for subsetting with iloc and loc. E.g `df.iloc({rows: df[\"count\"].gt(5), columns: [0, 1]})`\r\n* Update an existing column value via subsetting. E.g `df[\"count\"] = [1,3,4,5]`\r\n* Add loc indexing support for Series\r\n* Add configuration support for formating DataFrame display in the console\r\n* New DataFrame applyMap function for element-wise apply function\r\n* and and or logical comparison support. E.g \r\n ```javascript\r\ndf.loc({\r\n       rows: df['Salary_in_1000'].gte(100)).and(df['Age'].gt(60))\r\n})\r\n```\r\n* read_csv now uses Papaparse and supports config values for headers, separator, etc.\r\n* to_csv , to_json and to_excel functions now support saving to local disk in Node and downloadable in the browser. Also, supports config parameters for output. \r\n* read_json now supports config values for headers, authentication, separator, etc.\r\n* read_excel now uses XLSX parser, hence supports all XLSX config options. \r\n* DataFrame query function now accepts boolean masks with single or multiple conditions. E.g \r\n```javascript\r\ndf.query({\r\n  rows: df['Salary_in_1000'].gte(100)).and(df['Age'].gt(60)) \r\n})\r\n```\r\n## Bug Fixes\r\n* Column data not being updated when mutating internal data array\r\n* Str class error for non-string type\r\n* Better error message\r\n* Fix support for all JS Date format\r\n* Fix loc slicing bug for row index with string labels\r\n* DataFrame apply function now works only across a specified axis\r\n\r\n## Contributors\r\n@risenW ","2021-10-01T22:50:58",{"id":220,"version":221,"summary_zh":222,"released_at":223},239082,"v0.2.5","[Bug Fix]: #206 #203 #200 #198 #198 #188 #181 #175 #183 #168 \r\n[Patch] #191 #161 #206\r\n\r\nThanks to @risenW @steveoni @jpjagt @sponsfreixes @bherbruck @woosuk288 and @adithyaakrishna \r\n\r\n","2021-05-30T14:37:29",{"id":225,"version":226,"summary_zh":227,"released_at":228},239083,"v0.2.4","[Bug Fix]: #150 #152\r\n[Patch] #159 , #158 \r\n[Feature] #154 New Groupby feature: Perform groupby operation on grouped columns directly:\r\n```javascript\r\ngroup = df.groupby(['A\"])\r\ngroup.min()\r\n\r\n\r\ngroupby.apply((x) => x.add(2))\r\ngroupby.col([\"C\"]).apply((x) => x.min())\r\n\r\n```\r\n\r\nContributors: @steveoni @PrawiraGenestonlia @woosuk288 @risenW ","2021-03-29T16:16:46",{"id":230,"version":231,"summary_zh":232,"released_at":233},239084,"v0.2.3","We added\u002Fupdated the following features:\r\n* Fix error thrown when danfojs CDN is placed in an HTML header\r\n* Smaller bundle size for browser: From ~1.7mb to about ~550kb\r\n* Stopped bundling Danfojs with Plotly. This means that as of v0.2.3, we no longer ship with Plotly distribution due to the huge size. Plotly * plots are still supported, but in order to make them, you have to explicitly add the Plotly CDN or package. \r\n\r\nA simple example:\r\n\r\n```html\r\n\u003C!DOCTYPE html>\r\n\u003Chtml lang=\"en\">\r\n\u003Chead>\r\n    \u003Cmeta charset=\"UTF-8\">\r\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    \u003Cscript src=\"https:\u002F\u002Fcdn.plot.ly\u002Fplotly-1.2.0.min.js\">\u003C\u002Fscript> \r\n    \u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fdanfojs@0.2.3\u002Flib\u002Fbundle.min.js\">\u003C\u002Fscript> \r\n\r\n    \u003Ctitle>Document\u003C\u002Ftitle>\r\n\u003C\u002Fhead>\r\n\r\n\u003Cbody>\r\n\r\n    \u003Cdiv id=\"div1\">\u003C\u002Fdiv>\r\n    \u003Cdiv id=\"div2\">\u003C\u002Fdiv>\r\n    \u003Cdiv id=\"div3\">\u003C\u002Fdiv>\r\n\r\n    \u003Cscript>\r\n\r\n        dfd.read_csv(\"https:\u002F\u002Fraw.githubusercontent.com\u002Fplotly\u002Fdatasets\u002Fmaster\u002Ffinance-charts-apple.csv\")\r\n            .then(df => {\r\n\r\n                df['AAPL.Open'].plot(\"div1\").box() \u002F\u002Fmakes a box plot\r\n\r\n                df.plot(\"div2\").table() \u002F\u002Fdisplay csv as table\r\n\r\n                new_df = df.set_index({ key: \"Date\" }) \u002F\u002Fresets the index to Date column\r\n                new_df.plot(\"div3\").line({ columns: [\"AAPL.Open\", \"AAPL.High\"] })  \u002F\u002Fmakes a timeseries plot\r\n\r\n            }).catch(err => {\r\n                console.log(err);\r\n            })\r\n\r\n    \u003C\u002Fscript>\r\n    \r\n\u003C\u002Fbody>\r\n\r\n\u003C\u002Fhtml>\r\n\r\n\r\n```","2021-03-06T09:47:23",{"id":235,"version":236,"summary_zh":237,"released_at":238},239085,"v0.2.2-browser","* Fix browser tag issue and returns back to specific versioning instead of @latest\r\n* This release fixes some runtime issue regarding @babel\u002Fruntime\r\n* Smaller size in this version. From ~8mb to about ~5mb\r\n* Release now ships with exported version of tensorflowjs (2.8.5). This fixes the double dependency issue when building ML models, as you no longer need to install\u002Fimport tensorflowjs separately.\r\n\r\nTo use tensoflowjs, you can reference it from danfo as shown below:\r\n\r\n```javascript\r\nconst tf = dfd.tf \u002F\u002Fcontains a reference to the tensorflowjs-node library\r\n\r\n const model = tf.sequential();\r\n model.add(tf.layers.dense({ inputShape: [7], units: 124, activation: 'relu', kernelInitializer: 'leCunNormal' }));\r\n model.add(tf.layers.dense({ units: 64, activation: 'relu' }));\r\n model.summary();\r\n```","2021-02-14T17:25:09",{"id":240,"version":241,"summary_zh":242,"released_at":243},239086,"v0.2.2","* This release fixes some runtime issue regarding @babel\u002Fruntime\r\n* Release comes with exported version of tensorflowjs-node (2.8.5). This fixes the double dependency issue when building ML models, as you no longer need to install\u002Fimport tensorflowjs separately. \r\n\r\nTo use tensoflowjs-node, you can reference it from danfo as shown below:\r\n\r\n```javascript\r\nconst dfd = require(\"danfojs-node\")\r\nconst tf = dfd.tf \u002F\u002Fcontains a reference to the tensorflowjs-node library\r\n\r\n const model = tf.sequential();\r\n model.add(tf.layers.dense({ inputShape: [7], units: 124, activation: 'relu', kernelInitializer: 'leCunNormal' }));\r\n model.add(tf.layers.dense({ units: 64, activation: 'relu' }));\r\n model.summary();\r\n```\r\n","2021-02-14T15:48:39",{"id":245,"version":246,"summary_zh":247,"released_at":248},239087,"v0.1.3-node-beta","This is a patch release for node-based environments. We added\u002Fupdated the following features:\r\n\r\n* Ability to create DataFrame\u002FSeries from Tensors\r\n* Add iloc function for Series\r\n* Update addColumns function to accept Series\r\n* Add inplace option for fillna\r\n* Fix bug in rename function of DataFrame\r\n* Add Inplace option for query\r\n* Fixed upper bound bug in indexing","2020-08-15T14:55:29",{"id":250,"version":251,"summary_zh":252,"released_at":253},239088,"v0.1.0-browser-beta","This is a minor release for browser-based environments. \r\nWe  added\u002Fupdated the following features:\r\n\r\n* Ability to create DataFrame\u002FSeries from Tensors\r\n* Add iloc function for Series\r\n* Update addColumns function to accept Series \r\n* Add inplace option for fillna\r\n* Fix bug in rename function of DataFrame\r\n* Add Inplace option for query\r\n* Fixed upper bound bug in indexing","2020-08-15T14:23:23"]