专业编程基础技术教程

网站首页 > 基础教程 正文

绝了! 这个库让Pandas数据框互动起来了!

ccvgpt 2025-01-14 11:10:54 基础教程 1 ℃

今天我们介绍的是一个神奇的库 -- ITables ,它是获得 MIT 许可的 Python 软件包,是一个可使用DataTables[1] JavaScript 库渲染 Python DataFrames 的交互式表格。刚刚发布的 ITables 2.0 增加了对 DataTables 扩展库的支持。

如何使用 ITables

可以使用 pip 或 conda 安装 ITables:

绝了! 这个库让Pandas数据框互动起来了!

pip install itables

或者

conda install itables

ITables 本质上是DataTables[2] 的 Python 封装。我们已设法将其依赖性降至最低:ITables 仅需要IPythonpandasnumpy,如果在 Jupyter 中使用 Pandas,您必须已经拥有这些资源(如果希望将 ITables 与PolarsDataFrames 结合使用,请添加 polarspyarrow)。

要在笔记本中使用 ITables,请运行以下代码片段:

from itables import init_notebook_mode

init_notebook_mode(all_interactive=True)

之后,每个 Pandas 或 Polars DataFrame 都将使用DataTables库显示。有了 DataTables,可以更轻松、更全面地访问数据。可以展开表格,浏览不同页面,对数据进行排序,甚至搜索数据,而无需返回 Python 提示符。

要将特定表格渲染为交互式 DataTable,或将参数传递给 DataTable 构造函数,可以使用show函数:

from itables import show

DataTables 扩展

下载数据

有了 DataTables 的Buttons[3]扩展,下载数据就变得非常简单:

show(df, buttons=["copyHtml5", "csvHtml5", "excelHtml5"])

级联搜索

SearchPanes[4]扩展可以对有重复值的列进行快速、直观的搜索:

搜索生成器

我觉得SearchBuilder[5]扩展非常有用。此外,我还喜欢设置预定义搜索并只显示我们想关注的数据集部分的选项。

下采样

最后我需要介绍一下 ITables 的下采样[6]机制。默认情况下,只显示估计大小不超过 64kB(不超过 200 列)的表格子集。可以通过

import itables.options as opt
opt.maxBytes = 131072
opt.maxColumns = 0

通过查看表格右下方的表格摘要,可以判断表格是否进行了向下采样。

向下采样时,只有一部分数据被传递到 DataTables,因此搜索或数据导出功能只能访问这部分数据集。

向下采样是 ITables 快速运行的关键。在将opt.maxBytes设置为大数值或0 之前,请三思而后行,这很有可能会冻结你的notebook 。显示 1G 的 DataFrame 至少会让notebook 变得同样大(由于数据已导出为 JSON,所以可能会更大),而且目前还不清楚浏览器是否支持。

参考资料

[1] DataTables: https://datatables.net/

[2] DataTables: https://datatables.net/

[3] Buttons: https://mwouts.github.io/itables/extensions.html#buttons

[4] SearchPanes: https://mwouts.github.io/itables/extensions.html#searchpanes

[5] SearchBuilder: https://mwouts.github.io/itables/extensions.html#searchbuilder

[6] 下采样: https://mwouts.github.io/itables/downsampling.html

最近发表
标签列表