将Pandas数据框的完整内容写入HTML表格

6 投票
1 回答
10166 浏览
提问于 2025-04-18 15:34

我在一个Pandas数据框的某一列中嵌入了链接(下面的表格),然后把这个数据框写成了html格式。

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

In: table.loc[0,'Links']
Out: u'<a href="http://xxx.xx.xxx.xxx/browser/I6.html">I6</a>'

如果我查看整个数据框(而不是索引特定的行),链接的文本会被截断:

<a href="http://xxx.xx.xxx.xxx/browser/I6.html...  

我把数据框写成html:

table_1=table.to_html(classes='table',index=False,escape=False)

但是,写入html表格的却是被截断的链接(而不是完整的文本):

 <td> <a href="http://xxx.xx.xxx.xxx/browser/I6.html...</td>\n

我可能需要给to_html()函数添加一个额外的参数。

现在查看文档,但如果有建议也很欢迎:

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

谢谢!

1 个回答

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']]

然后写出表格:

table_1 = df.to_html(classes='table',index=False,escape=False)

最后再把链接重新写回去:

for key, value in map.iteritems():
    table_1 = table_1.replace(value, key)

撰写回答