Pandas数据帧渲染为Jupyter中的表

时间:2017-08-18 13:02:40

标签: python pandas jupyter-notebook

如果我有pandas.DataFrame df,只需执行

df

在一个空的Jupyter笔记本单元格中,它会很好地呈现为一个表格。

让一个类环绕数据帧,如何以相同的方式呈现底层数据帧?

class Wrapper:
  def __init__(self, df):
    self._df = df

  def __repr__(self):
    ## to_html does not work
    return self._df.to_html()

这给出了这个想法,但to_html似乎无法做到这一点。我该怎么办?

1 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,那么当调用包装器对象时,您希望将df打印为表格?如果是这种情况,那么您可以包装数据框的_repr_html_方法。

class Wrapper:
    def __init__(self, df):
        self._df = df

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

或者:

class Wrapper:
    def __init__(self, df):
        self._df = df

    self.repr_html = self._df._repr_html_

使用以下方法创建对象后

mytable = Wrapper(df)

您可以通过调用df

在笔记本中将mytable显示为一个表格
mytable # displays the df