Pandas / IPython Notebook: 在数据框中添加和显示图片

9

我有一个包含图像文件名的pandas Dataframe表格。如何在表格内显示这些图片?

我尝试了以下方法:

import pandas as pd
from IPython.display import Image

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

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

但是当我展示这个框架时,每一列只显示了Image对象的to_string表示。
    Image
0   IPython.core.display.Image object
1   IPython.core.display.Image object

有没有解决办法?

谢谢您的帮助。

3个回答

16

建议不要将 HTML 代码插入数据框中,而应该使用格式化器。不幸的是,您需要设置截断设置,以便长文本不会被截断为“...”。

import pandas as pd
from IPython.display import 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={'Image': path_to_image_html}))

11

我找到的解决方案是不使用IPython.display Image,而是使用IPython.display HTML以及数据框架的to_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))

-1

我认为你误解了数据框中存储的内容,并将其与显示方式混淆了。如果要在HTML表格表示中显示图像,则必须编写自己的函数来在HTML表格单元格中插入图像标记。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接