Pandas/IPython笔记本:在datafram中包含并显示图像

2024-06-26 00:17:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据框,其中还有一个列,其文件名为图像。如何在数据框内显示图像?

我尝试了以下方法:

import pandas as pd
from IPython.display import Image

df = pd.DataFrame(['./image01.png', './image02.png'], columns = ['Image'])

df['Image'] = Image(df['Image'])

但是当我显示帧时,每列只显示图像对象的to_字符串表示。

    Image
0   IPython.core.display.Image object
1   IPython.core.display.Image object

有什么解决办法吗?

谢谢你的帮助。


Tags: 数据方法core图像imageimportpandasdf
3条回答

我认为您误解了数据帧中存储的内容,并混淆了它的显示方式。为了在html表表示中显示图像,您必须编写自己的函数来在html表单元格中插入图像标记。

我建议使用格式化程序,而不是将html代码插入到数据帧中。很遗憾,您需要设置截断设置,这样长文本就不会被“…”截断。

import pandas as pd
from IPython.display import Image, HTML

df = pd.DataFrame(['./image01.png', './image02.png'], columns = ['Image'])

def path_to_image_html(path):
    return '<img src="'+ path + '"/>'

pd.set_option('display.max_colwidth', -1)

HTML(df.to_html(escape=False ,formatters=dict(Image=path_to_image_html)))

我找到的解决方案不是使用IPython.display图像,而是使用数据帧的IPython.display HTML和to-u HTML(escape=False)功能。

总之,它看起来像这样:

import pandas as pd
from IPython.display import Image, HTML

df = pd.DataFrame(['<img src="image01.png"/>', './image02.png'], columns = ['Image'])

HTML(df.to_html(escape=False))

相关问题 更多 >