qtconsole不渲染大熊猫dataframes为html notebook_repr_html选

2019-08-17 08:38发布

我最近升级我的版本的熊猫。 我现在最新的稳定版本安装:

pd.__version__
Out[5]: '0.10.1'

此升级之前,这是dataframes是如何在qtconsole外壳显示(这不是我的截图,而只是一个我在网上找到了)。

大熊猫的最新版本还采用了不同的方法来设置显示选项。

而不是使用pd.set_printoptions ,大熊猫要你使用set_option CONFIGS是这样的:

pd.set_option('display.notebook_repr_html', True)

升级我的大熊猫版本后,qtconsole不再呈现dataframes为HTML表。

一个例子:

import numpy as np
import pandas as pd

pd.set_option('display.notebook_repr_html', True)
pd.set_option('display.expand_frame_repr', True)
pd.set_option('display.precision', 3)
pd.set_option('display.line_width', 100)
pd.set_option('display.max_rows', 50)
pd.set_option('display.max_columns', 10)
pd.set_option('display.max_colwidth', 15)

当我创建了一个数据帧?

f = lambda x: x*np.random.rand()
data = {"a": pd.Series(np.arange(10) ** 2 ),
        "b": pd.Series(map(f, np.ones(10))) }
df = pd.DataFrame(data)
df

这是我在qtconsole外壳看到:

Out[4]: 
    a     b
0   0  0.15
1   1  0.74
2   4  0.81
3   9  0.94
4  16  0.40
5  25  0.03
6  36  0.40
7  49  0.43
8  64  0.56
9  81  0.14

您可以检查显示器的configs的当前设置:

opts = ["max_columns", 
        "max_rows", 
        "line_width", 
        "max_colwidth", 
        "notebook_repr_html", 
        "pprint_nest_depth", 
        "expand_frame_repr" ]

for opt in opts:
    print opt, pd.get_option(opt)

Out[5]
max_columns 10
max_rows 50
line_width 100
max_colwidth 15
notebook_repr_html True
pprint_nest_depth 3
expand_frame_repr True

那我为了渲染qtconsole的美化HTML表格不见了?

Answer 1:

据我所知, notebook_repr_html选项仅适用于实际IPython的笔记本电脑,而不是QTConsole。

在QTConsole,你可以这样做:

from IPython.display import HTML
import numpy as np
import pandas

df = pandas.DataFrame(np.random.normal(size=(75,5)))
HTML(df.to_html())

您可能会遇到的一个问题是,如果HTML是您QTConsole的缓冲时间过长。 在这种情况下,什么都不会显示出来,在我的经验。



文章来源: qtconsole not rendering pandas dataframes as html notebook_repr_html option