我正在使用梦幻般的Notebook进行交互式分析和Pandas在IPython中构建一些交互式工作流程。
我正在显示的一些表格通过一些格式化更容易阅读。我真的很喜欢像“斑马桌”这样的东西,其中每一行都有阴影。我read here关于如何通过css实现这种格式化。是否有一种非常简单的方法将css应用于 IPython Notebook ,然后使用样式表呈现表格?
答案 0 :(得分:13)
您可以在<script>
标记内的标记单元格中运行任意javascript(使用jQuery),也可以通过IPython的IPython.core.display.Javascript
类运行。有了这些,您可以根据自己心中的内容操作(或破坏)文档,包括添加样式表。
例如,以下内容将对适当的分类表进行分类:
<script type="text/javascript">
$('head').append(
"<style type='text/css'>tr.odd{background-color: #def}</style>"
);
</script>
如果您只是将其粘贴在其中一个降价单元格中,那么它将适用于页面上的所有内容。
或者,您可以在代码单元格中从Python运行相同的代码(减去<script>
标记):
from IPython.core.display import Javascript, display
display(Javascript("""
$('head').append(
"<style type='text/css'>tr.odd{background-color: #def}</style>"
);
"""))
但这样做只会影响适当分类的表格,这取决于编写HTML的代码(例如在Pandas中)。
答案 1 :(得分:7)
我刚刚发布了一个名为ipy_table的项目,它提供了一种在IPython笔记本中创建格式丰富的数据表的简单机制(颜色,边框,对齐,浮动格式,斑马着色等)。该项目位于https://github.com/epmoyer/ipy_table,您可以从https://github.com/epmoyer/ipy_table/blob/master/ipy_table-Reference.pdf了解它的功能。
答案 2 :(得分:2)
如果您对使用slickgrid构建网格/表感兴趣,但在python中,那么您可能对qgrid感兴趣。这适用于使用pandas的ipython笔记本。
https://github.com/quantopian/qgrid
另一种选择是使用这样的双手:
http://nbviewer.ipython.org/gist/bollwyvl/6ad208084744c60dda65
另一个仅使用熊猫的第三个选项是:
Pandas Dataframes to_html: Highlighting table rows
第四个选项是使用模板引擎,如jinja2,如下所示:
Pandas Dataframe display on a webpage
最后,在pandas中存在一个基于模板呈现的未解决问题:
https://github.com/pydata/pandas/issues/3190
P.S。谷歌的Python大师建议这个最小的解决方案(避免任何第三方依赖):
https://stackoverflow.com/a/1475453/2230844
或阅读他的书:
Python in a Nutshell,2nd Edition, 第23章结构化文本:HTML