IPython Notebook 中的“斑马表”?

Posted

技术标签:

【中文标题】IPython Notebook 中的“斑马表”?【英文标题】:"Zebra Tables" in IPython Notebook? 【发布时间】:2012-06-01 09:17:44 【问题描述】:

我正在使用出色的 Notebook 进行交互式分析和 Pandas 在 IPython 中构建一些交互式工作流。

我展示的一些表格只要稍微格式化一下就会更容易阅读。我真的很喜欢“斑马表”之类的东西,其中每隔一行都有阴影。我read here 关于如何通过 css 实现这种格式。是否有一种非常直接的方法可以将 css 应用于 IPython Notebook,然后使用样式表呈现表格?

【问题讨论】:

【参考方案1】:

您可以在<script> 标记内的markdown 单元格中或通过IPython 的IPython.core.display.javascript 类运行任意javascript(使用jQuery)。有了这些,您可以随心所欲地操作(或破坏)文档,包括添加样式表。

例如,以下将条带化适当分类的表:

<script type="text/javascript">
    $('head').append(
        "<style type='text/css'>tr.oddbackground-color: #def</style>"
    );
</script>

如果您只是将其粘贴在一个降价单元格中,那么它将应用于页面上的所有内容。

或者,您可以在代码单元中从 Python 运行相同的代码(减去 &lt;script&gt; 标签):

from IPython.core.display import Javascript, display
display(Javascript("""
    $('head').append(
        "<style type='text/css'>tr.oddbackground-color: #def</style>"
    );
"""))

但是这样做只会影响你的表被适当分类,这取决于编写 html 的代码(例如在 Pandas 中)。

【讨论】:

最好开始在 pandas 中做一些此类事情(假设 API 已经有些稳定) 仅供参考:this quesion 有一些漂亮的 css3 用于“斑马桌”。【参考方案2】:

我刚刚发布了一个名为 ipy_table 的项目,它提供了一种简单的机制来在 IPython 笔记本中创建格式丰富的数据表(颜色、边框、对齐方式、浮点格式、斑马阴影等)。该项目位于https://github.com/epmoyer/ipy_table,您可以从https://github.com/epmoyer/ipy_table/blob/master/ipy_table-Reference.pdf 了解它的功能。

【讨论】:

您的 pdf 链接已损坏【参考方案3】:

如果您对使用 slickgrid 构建网格/表格感兴趣,但在 python 中,那么您可能对 qgrid 感兴趣。这适用于使用 pandas 的 ipython 笔记本。

https://github.com/quantopian/qgrid

另一种选择是像这样使用handsontable:

http://nbviewer.ipython.org/gist/bollwyvl/6ad208084744c60dda65

这里是仅使用 pandas 的第三个选项:

Pandas Dataframes to_html: Highlighting table rows

第四个选项是像这样使用 jinja2 之类的模板引擎:

Pandas Dataframe display on a webpage

http://nbviewer.ipython.org/github/pydata/pandas/blob/8c4f9571c08d5122f1d9e40c43dadab8b6f10bf5/pandas_HTML_styling.ipynb

最后,pandas 中有一个未解决的问题,需要基于模板进行渲染:

https://github.com/pydata/pandas/issues/3190

附:来自 Google 的 Python 专家提出了这个最小的解决方案(避免任何第三方依赖):

https://***.com/a/1475453/2230844

或阅读他的书:

Python 简而言之,第 2 版, 第23章结构化文本:HTML

【讨论】:

感谢 qgrid 包的提示。 qgrid 在着色单元格方面存在未解决的问题

以上是关于IPython Notebook 中的“斑马表”?的主要内容,如果未能解决你的问题,请参考以下文章

IPython Notebook 抛出 ImportError – IPython 不会

无法让 Spark 在 Windows 中的 IPython Notebook 上工作

在 jupyter/iPython notebook 脚本和类方法之间同步代码

ipython notebook 安装求助

IPython Notebook 和 Pandas 自动完成

安装anaconda-换源-安装ipython-安装ipython notebook