熊猫数据框to_html格式化程序-无法显示图像

时间:2019-10-18 18:14:42

标签: html pandas dataframe email formatter

我正在尝试使用to_html为电子邮件报告在熊猫数据框中添加上下箭头。

我正在使用lambda函数向数据框中的列值输入向上和向下箭头,我知道html图像可以正常工作,因为我可以将其放在电子邮件正文中,并且可以正常工作,但是当我使用此函数及其输出的pandas格式化程序,如下图所示(ps。我知道CID与函数中的内容不同,我只是在试一下)

有人知道为什么吗?还是有人有更好的方法呢?

pandas formatter error

致电:

worst_20_accounts.to_html(index=False,formatters={'Last Run Rank Difference': lambda x: check_html_val_for_arrow(x)}))

功能:

def check_html_val_for_arrow(x):
    try:
        if x > 0:
            return str(x) + ' <img src="cid:image7">'
        elif x < 0:
            return str(x) + ' <img src="cid:image8">'
        else:
            return str(x)
    except:
        return str(x)

1 个答案:

答案 0 :(得分:1)

escape=False

默认情况下,pandas.DataFrame.to_html方法会转义数据帧值中的所有html。

my_img_snippet = (
    "<img src='https://www.pnglot.com/pngfile/detail/"
    "208-2086079_right-green-arrow-right-green-png-arrow.png'>"
)
df =  pd.DataFrame([[my_img_snippet]])

然后

from IPython.display import HTML
HTML(df.to_html(escape=False))

enter image description here


style

您可以让styler对象处理渲染

df.style

enter image description here