在 pandas 数据帧上显示 html 字符串值
Display html string value on pandas dataframe
假设我有一个包含字符串值的数据框,其中包含一些 HTML
my_dict = {"a":{"content":"""
<p>list of important things</p>
<ul>
<li>c</li>
<li>d</li>
</ul>
"""}}
df = pd.DataFrame.from_dict(my_dict,orient='index')
结果符合预期:
我想将数据框导出为 HTML,以便我的 HTML 字符串在 table 单元格内工作。
我试过的
我知道 DataFrame.to_html(escape=False)
,它会产生:
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>content</th>
</tr>
</thead>
<tbody>
<tr>
<th>a</th>
<td>\n<p>list of important things</p>\n<ul>\n<li>c</li>\n<li>d</li>\n</ul>\n</td>
</tr>
</tbody>
</table>
哪个看起来不对:
因为那个HTML有一个文字\n
,所以我认为该方法在将它插入到HTML的转换中时已经采用了字符串值的repr
数据集。
我 知道 我可以再次将 scaped \n
替换为 \n
,这看起来应该是:
但我想知道是否有某种方法可以告诉 pandas 将数据帧的文字字符串值插入 HTML,而不是 repr
。我不明白 .to_html()
的一半 kwargs,所以我不知道这是否可能。
I'd like to export the dataframe as HTML such that my HTML string
works inside the table cells.
如果是这样,您可能需要考虑将 \n
替换为 HTML 换行符,即。 <br>
如果你想为它换行或者你可以用一个空字符串替换它。
df['content'] = df['content'].str.replace('\n', '<br>')
df.to_html('html.html', escape=False)
如果你不想替换数据帧本身,你可以让 pandas 通过将其作为格式化程序传递来处理它:
df.to_html('html.html',
formatters = {'content': lambda k: k.replace('\n', '<br>')},
escape=False)
如果你只是想完全摆脱新行,你可以用空字符串替换它,在数据帧本身或作为格式化程序传递。
df.to_html('html.html',
formatters = {'content': lambda k: k.replace('\n', '')},
escape=False)
假设我有一个包含字符串值的数据框,其中包含一些 HTML
my_dict = {"a":{"content":"""
<p>list of important things</p>
<ul>
<li>c</li>
<li>d</li>
</ul>
"""}}
df = pd.DataFrame.from_dict(my_dict,orient='index')
结果符合预期:
我想将数据框导出为 HTML,以便我的 HTML 字符串在 table 单元格内工作。
我试过的
我知道 DataFrame.to_html(escape=False)
,它会产生:
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>content</th>
</tr>
</thead>
<tbody>
<tr>
<th>a</th>
<td>\n<p>list of important things</p>\n<ul>\n<li>c</li>\n<li>d</li>\n</ul>\n</td>
</tr>
</tbody>
</table>
哪个看起来不对:
因为那个HTML有一个文字\n
,所以我认为该方法在将它插入到HTML的转换中时已经采用了字符串值的repr
数据集。
我 知道 我可以再次将 scaped \n
替换为 \n
,这看起来应该是:
但我想知道是否有某种方法可以告诉 pandas 将数据帧的文字字符串值插入 HTML,而不是 repr
。我不明白 .to_html()
的一半 kwargs,所以我不知道这是否可能。
I'd like to export the dataframe as HTML such that my HTML string works inside the table cells.
如果是这样,您可能需要考虑将 \n
替换为 HTML 换行符,即。 <br>
如果你想为它换行或者你可以用一个空字符串替换它。
df['content'] = df['content'].str.replace('\n', '<br>')
df.to_html('html.html', escape=False)
如果你不想替换数据帧本身,你可以让 pandas 通过将其作为格式化程序传递来处理它:
df.to_html('html.html',
formatters = {'content': lambda k: k.replace('\n', '<br>')},
escape=False)
如果你只是想完全摆脱新行,你可以用空字符串替换它,在数据帧本身或作为格式化程序传递。
df.to_html('html.html',
formatters = {'content': lambda k: k.replace('\n', '')},
escape=False)