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