将 Pandas 数据框的全部内容写入 HTML 表
Posted
技术标签:
【中文标题】将 Pandas 数据框的全部内容写入 HTML 表【英文标题】:Writing full contents of Pandas dataframe to HTML table 【发布时间】:2014-09-24 02:21:14 【问题描述】:我在 Pandas 数据框(下表)的一列中嵌入链接并将数据框写入 hmtl。
数据框表中的链接格式如下所示(索引表中的第一个链接):
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
谢谢!
【问题讨论】:
我已经向 pandas 提交了一个pull request 以使这种事情变得更容易。 【参考方案1】:所以可能有一个特定于 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)
【讨论】:
谢谢,这应该可以。我最终通过增加数据框列宽在熊猫中解决了它:pd.options.display.max_colwidth = 100以上是关于将 Pandas 数据框的全部内容写入 HTML 表的主要内容,如果未能解决你的问题,请参考以下文章
python将pandas dataframe内容写入ElasticSearch实战
使用 SqlAlchemy 和 cx_Oracle 将 Pandas DataFrame 写入 Oracle 数据库时加快 to_sql()