我正在尝试使用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)
答案 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))
style
您可以让styler
对象处理渲染
df.style