Show HN: Buckaroo – 用于 Notebook 的数据表 UI

Buckaroo 是一个用于 Notebook 的数据表 UI。它可以让你快速探索 dataframes,滚动浏览 dataframes,进行搜索、排序,查看汇总统计信息和直方图。支持 Pandas, Polars, Jupyter, Marimo, VSCode Notebooks。

Buckaroo - 用于 Jupyter 的数据表 Buckaroo 是一个现代化的 Jupyter 数据表,可以加速最常见的探索性数据分析任务。使用现有的 Pandas 工具,最基本的数据分析任务——查看原始数据——非常繁琐。Buckaroo 从一个现代化的、高性能的数据表开始,它可以排序、具有值格式化功能,并且可以无限滚动。在核心表格体验的基础上,还添加了诸如汇总统计信息、直方图、智能抽样、自动清理和低代码 UI 等额外功能。所有功能都有合理的默认值,可以覆盖这些默认值,以便自定义你的工作流程体验。 Screenshot 2025-05-12 at 3 54 33 PM

立即在浏览器中使用 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 的默认显示方法。

兼容性

Buckaroo 在以下 notebook 环境中工作:

Buckaroo 支持以下 DataFrame 库:

了解更多

Buckaroo 有大量的文档和测试,了解该系统的最佳方式是通过 youtube 上的功能示例视频。

交互式样式库

交互式样式库可以让你看到不同的样式配置。你可以实时编辑代码,并使用不同的配置。

视频

示例 Notebook

以下示例加载到安装了 Buckaroo 的 jupyter lite 环境中。

功能

高性能表格

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

发布说明

github 发布说明

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

资源

Readme

许可证

BSD-3-Clause license Activity

Stars

432 stars

Watchers

4 watching

Forks

9 forks 报告存储库

Releases 16

0.10.4 Rendering fixes and improvements Latest May 18, 2025 + 15 releases

Packages 0

No packages published

Contributors 4

语言

页脚

© 2025 GitHub, Inc.

页脚导航

You can’t perform that action at this time.