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

pandas dataframe to_html formatters - can't display image

我正在尝试将向上和向下箭头添加到 pandas 数据框,其中 to_html 用于电子邮件报告。

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

有人知道为什么吗?或者谁有更好的方法?

通话:

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)

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))


style

您可以让 styler 对象处理渲染

df.style