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

pd.__version__
Out[5]: '0.10.1'

在此升级之前,这是在qtconsole shell中显示数据帧的方式(这不是我的屏幕截图,而只是我在网络上找到的屏幕截图)。



最新版本的 Pandas 还使用其他方法来设置显示选项。

Pandas 不想使用pd.set_printoptions,而是希望您使用set_option配置,如下所示:
pd.set_option('display.notebook_repr_html', True)

升级我的 Pandas 版本后,qtconsole不再将数据帧呈现为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)

当我创建一个DataFrame时...
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 shell中看到的:
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

您可以检查当前的显示配置设置:
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表,我缺少了什么?

最佳答案

据我所知,notebook_repr_html选项仅适用于实际的IPython Notebook,不适用于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的缓冲区来说太长了。在这种情况下,根据我的经验,什么也不会出现。

关于pandas - qtconsole不将pandas数据帧呈现为html notebook_repr_html选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15259144/

10-12 20:15