将Pandas数据框的全部内容写入HTML表

lma*_*999 5 html python pandas

我将链接嵌入到Pandas数据框的一列(下表)中,并将该数据框写入hmtl。

数据框表中的链接的格式如下所示(索引表中的第一个链接):

In: table.loc[0,'Links']
Out: u'<a href="http://xxx.xx.xxx.xxx/browser/I6.html">I6</a>'
Run Code Online (Sandbox Code Playgroud)

如果我查看(而不是索引特定的行)数据框(在笔记本中),则链接文本将被截断:

<a href="http://xxx.xx.xxx.xxx/browser/I6.html...  
Run Code Online (Sandbox Code Playgroud)

我将数据框写入html:

table_1=table.to_html(classes='table',index=False,escape=False)
Run Code Online (Sandbox Code Playgroud)

但是,截断的链接(而不是全文)被写入html表:

 <td> <a href="http://xxx.xx.xxx.xxx/browser/I6.html...</td>\n
Run Code Online (Sandbox Code Playgroud)

我可能需要to_html()的附加参数。

现在查看文档,但建议:

http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.to_html.html

谢谢!

use*_*148 2

因此,可能有一个特定于 pandas 的解释,但您也可以通过以下方式解决该问题:(a) 用键值替换链接,(b) 编写 html 表字符串,然后 (c) 用适当的值替换键链接。

例如,用一个键替换每个链接,将键存储在字典中:

map = {}
for i in df.index:
    counter = 0
    if df.ix[i]['Links'] in map:
        df.ix[i, 'Links'] = map[df.ix[i]['Links']]
    else:
        map[df.ix[i, 'Links']] = 'href' + str(counter)
        counter += 1
        df.ix[i, 'Links'] = map[df.ix[i]['Links']]
Run Code Online (Sandbox Code Playgroud)

写表:

table_1 = df.to_html(classes='table',index=False,escape=False)
Run Code Online (Sandbox Code Playgroud)

重写链接:

for key, value in map.iteritems():
    table_1 = table_1.replace(value, key)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这应该可行。我最终通过增加数据框列宽在 pandas 中解决了这个问题: pd.options.display.max_colwidth = 100 (3认同)