Show HN: Buckaroo – Data table UI for Notebooks
Show HN: Buckaroo – 用于 Notebook 的数据表 UI
Buckaroo 是一个用于 Notebook 的数据表 UI。它可以让你快速探索 dataframes,滚动浏览 dataframes,进行搜索、排序,查看汇总统计信息和直方图。支持 Pandas, Polars, Jupyter, Marimo, VSCode Notebooks。
Buckaroo - 用于 Jupyter 的数据表
Buckaroo 是一个现代化的 Jupyter 数据表,可以加速最常见的探索性数据分析任务。使用现有的 Pandas 工具,最基本的数据分析任务——查看原始数据——非常繁琐。Buckaroo 从一个现代化的、高性能的数据表开始,它可以排序、具有值格式化功能,并且可以无限滚动。在核心表格体验的基础上,还添加了诸如汇总统计信息、直方图、智能抽样、自动清理和低代码 UI 等额外功能。所有功能都有合理的默认值,可以覆盖这些默认值,以便自定义你的工作流程体验。
立即在浏览器中使用 Marimo 尝试一下
无需任何安装即可体验 Buckaroo。完整教程
快速开始
运行 pip install buckaroo
,然后重启你的 Jupyter 服务器
以下代码展示了 Buckaroo 在一个简单的 dataframe 上的使用:
import pandas as pd
import buckaroo
pd.DataFrame({'a':[1, 2, 10, 30, 50, 60, 50], 'b': ['foo', 'foo', 'bar', pd.NA, pd.NA, pd.NA, pd. NA]})
当你在 Jupyter notebook 中运行 import buckaroo
时,Buckaroo 将成为 Pandas 和 Polars DataFrames 的默认显示方法。
兼容性
jupyter lab
(版本 >=3.6.0)jupyter notebook
(版本 >=7.0)- Marimo
VS Code notebooks
(需要额外安装)- Jupyter Lite
Google colab
Buckaroo 支持以下 DataFrame 库:
pandas
(版本 >=1.3.5)polars
(可选)geopandas
(可选,已弃用。如果您对 geopandas 感兴趣,请联系我们)
了解更多
Buckaroo 有大量的文档和测试,了解该系统的最佳方式是通过 youtube 上的功能示例视频。
交互式样式库
交互式样式库可以让你看到不同的样式配置。你可以实时编辑代码,并使用不同的配置。
视频
- Buckaroo 完整教程 6m50s 广泛介绍了 Buckaroo
- 自动清理快速演示 2m38s
- 编写自己的自动清理函数 10m10s
- 扩展 Buckaroo 12m56s
- Buckaroo 样式 8m18s
- 了解 Buckaroo 中的 JLisp 12m42s
- GeoPandas 支持
示例 Notebook
以下示例加载到安装了 Buckaroo 的 jupyter lite 环境中。
- 完整教程 Marimo Pyodide 从这里开始。它提供了 Buckaroo 功能的广泛概述。Jupyterlite (old) Google Colab Github 上的 Notebook
- 实时样式库 ipynb 所有可用于表格的不同格式化程序和样式的示例
- 实时自动清理 Marimo notebook 解释了自动清理的工作方式,并展示了如何实现你自己的清理命令和启发式策略。
- 实时直方图演示 ipynb 解释了 Buckaroo 的嵌入式直方图。
- 实时 JLisp 概述 Buckaroo 嵌入了一个小的 lisp 解释器,用于支持 lowcode UI。你不必理解 lisp 即可使用 buckaroo,但如果你想深入研究编程语言 UI,请查看此内容。
- 扩展 Buckaroo 广泛概述了如何将后处理方法和自定义样式方法添加到 Buckaroo
- 样式指南 深入解释了如何编写自定义样式方法
- 可插拔分析框架 如何向 Buckaroo 添加新的汇总统计信息
- Solara Buckaroo 将 Buckaroo 与 Solara 一起使用
- GeoPandas with Bucakroo
功能
高性能表格
Buckaroo 的核心数据网格基于 AG-Grid。它可以在不到一秒的时间内加载数千个单元格,并具有高度可定制的显示、格式和滚动功能。数据在你滚动时会延迟加载到浏览器中,并使用 parquet 序列化。你不再需要使用 df.head()
来查看部分数据。
默认固定宽度格式
默认情况下,数字列被格式化为使用固定宽度字体,并添加逗号。这允许快速直观地确认列中的大小。
直方图
每个列的直方图可以让你快速了解值的分布,包括唯一值和 N/A 值。
汇总统计
可以通过单击 Σ
图标下方的 0
来切换汇总统计视图。汇总统计类似于 df.describe
并且是可扩展的。
排序
通过单击列名称,可以对表格中可见的所有数据(显示的行)进行排序,进一步的单击会更改排序方向,然后禁用该列的排序。由于极值包含在样本行中,因此你也可以看到离群值。
搜索
搜索功能内置于 Buckaroo 中,因此你可以快速找到要查找的行。
Lowcode UI
Buckaroo 具有一个简单的带有 Python 代码生成的 low code UI。可以通过单击 λ
(lambda) 图标下方的复选框来切换此视图。
自动清理
从状态栏中选择一种清理方法。Buckaroo 具有启发式自动清理功能。自动清理系统会检查每一列,并运行统计数据来确定是否应将清理方法应用于该列(将日期解析为日期,删除非整数字符并将其视为整数,将隐含布尔值“是”“否”解析为布尔值),然后将这些清理操作添加到 low code UI。可以尝试不同的清理方法,因为脏数据不是确定性的,并且有多种方法可以正确地应用于任何情况。
核心可扩展性
Buckaroo 摘要统计信息建立在可插拔分析框架之上,该框架允许覆盖单个摘要统计信息,并可以根据现有的摘要统计信息构建新的摘要统计信息。我们已采取预防措施,以防止摘要统计信息中的错误阻止 dataframe 的显示。
自动清理(测试版)
Buckaroo 可以自动清理 dataframes 以删除常见的数据错误(整数列中的单个字符串,识别日期时间...)。此功能为测试版。你可以通过将 buckaroo 作为 BuckarooWidget(df, auto_clean=True)
调用来访问它。
开发安装
git clone https://github.com/paddymul/buckaroo.git
cd buckaroo
#we need to build against 3.6.5, jupyterlab 4.0 has different JS typing that conflicts
# the installable still works in JL4
pip install build twine pytest sphinx polars mypy jupyterlab==3.6.5 pandas-stubs geopolars pyarrow
pip install -ve .
为 Jupyter notebook 启用开发安装: 为 JupyterLab 启用开发安装:
jupyter labextension develop . --overwrite
开发人员请注意:Linux 或 OS X 上的 --symlink
参数允许就地修改 JavaScript 代码。此功能在 Windows 上不可用。 `
开发 JS 端
examples/ex 中有一系列组件示例。 说明
npm install
npm run dev
UV 说明
cd buckaroo
uv venv
source ~/buckaroo/.venv/bin/activate
uv sync -q
添加一个包
cd ~/buckaroo
uv add $PACKAGE_NAME
将包添加到子组
cd ~/buckaroo
uv add --group $GROUP_NAME --quiet $PACKAGE_NAME
发布说明
update CHANGELOG.md
git commit -m "updated changelog for release $VERSION_NUMBER"
git tag $VERSION_NUMBER # no leading v in the version number
git push origin tag $VERSION_NUMBER
导航到 create new buckaroo release 按照说明进行操作
贡献
我们 ❤️ 贡献。 你对此项目有很好的体验吗?为什么不分享一些爱心并贡献代码,或者只是让我们知道你遇到的任何问题? 我们欢迎问题报告;请务必为你的问题选择正确的问题模板,以便我们确保你提供必要的信息。
关于
Buckaroo - 用于 Notebook 的数据表 UI。它可以让你快速探索 dataframes,滚动浏览 dataframes,进行搜索、排序,查看汇总统计信息和直方图。支持 Pandas, Polars, Jupyter, Marimo, VSCode Notebooks。 github.com/paddymul/buckaroo
主题
data-science jupyter pandas buckaroo paddy polars marimo-notebook
资源
许可证
Stars
Watchers
Forks
Releases 16
0.10.4 Rendering fixes and improvements Latest May 18, 2025 + 15 releases
Packages 0
No packages published
Contributors 4
语言
页脚
页脚导航
You can’t perform that action at this time.