熊猫将单元格内容呈现为HTML

时间:2019-06-20 19:13:51

标签: python pandas jupyter-notebook ipywidgets

我正在尝试在jupyter笔记本中嵌入交互式数据框。

基本上,我想在数据框中的某些单元格内呈现自己的HTML。

首先,我正在尝试编写自己的类,这些类具有__repr__返回带有HTML的字符串,并使用to_htm(escape = False)在笔记本中呈现数据框,如下所示:

class Test():
    def _repr_html_(self):
        return "<b>Test</b>"

    def to_html(self):
        return self._repr_html_()

    def __repr__(self):
        return self._repr_html_()

我可以用以下方法对此进行测试:

from IPython.display import HTML
HTML(pd.DataFrame({'a':[Test()]}).to_html(escape=False))

这可行,但是现在我试图添加一个实际上有用的html,我发现最快的方法是使用ipywidgets,但是缺少了一些东西,因为以下示例失败了:

from ipywidgets import Button
HTML(pd.DataFrame({'a':[Button()]}).to_html(escape=False))

Pandas调用Button的__repr__,但显然不是ipywidgents呈现HTML的方式。

所以我在这里错过了一些技巧,还是创建交互式数据帧的解决方案完全不同。

当我说交互式数据框时,请务必清楚一点,我希望每次单击该单元格时都有一个按钮或东西会调用python函数。

0 个答案:

没有答案