今天我们介绍的是一个神奇的库 -- ITables ,它是获得 MIT 许可的 Python 软件包,是一个可使用DataTables[1] JavaScript 库渲染 Python DataFrames 的交互式表格。刚刚发布的 ITables 2.0 增加了对 DataTables 扩展库的支持。
如何使用 ITables
可以使用 pip 或 conda 安装 ITables:
或者
ITables 本质上是DataTables[2] 的 Python 封装。我们已设法将其依赖性降至最低:ITables 仅需要IPython
、pandas
和numpy
,如果在 Jupyter 中使用 Pandas,您必须已经拥有这些资源(如果希望将 ITables 与Polars
DataFrames 结合使用,请添加 polars
和pyarrow
)。
要在笔记本中使用 ITables,请运行以下代码片段:
之后,每个 Pandas 或 Polars DataFrame 都将使用DataTables库显示。有了 DataTables,可以更轻松、更全面地访问数据。可以展开表格,浏览不同页面,对数据进行排序,甚至搜索数据,而无需返回 Python 提示符。
(使用 ITables 展示 Pandas DataFrame)
要将特定表格渲染为交互式 DataTable,或将参数传递给 DataTable 构造函数,可以使用show
函数:
DataTables 扩展
下载数据
有了 DataTables 的Buttons[3]扩展,下载数据就变得非常简单:
(The Copy/CSV/Excel buttons)
级联搜索
SearchPanes[4]扩展可以对有重复值的列进行快速、直观的搜索:
(SearchPanes 扩展)
搜索生成器
我觉得SearchBuilder[5]扩展非常有用。此外,我还喜欢设置预定义搜索并只显示我们想关注的数据集部分的选项。
(SearchBuilder扩展)
下采样
最后我需要介绍一下 ITables 的下采样[6]机制。默认情况下,只显示估计大小不超过 64kB(不超过 200 列)的表格子集。可以通过
通过查看表格右下方的表格摘要,可以判断表格是否进行了向下采样。
向下采样时,只有一部分数据被传递到 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