Pandas / IPython Notebook:在数据框中包含并显示图像

Pandas / IPython Notebook: Include and display an Image in a dataframe

我有一个 pandas Dataframe,它还有一个包含图像文件名的列。如何在 DataFrame 中显示图像?

我尝试了以下方法:

import pandas as pd
from IPython.display import Image

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

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

但是当我显示框架时,每一列只显示图像对象的 to_string 表示。

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

有解决办法吗?

感谢您的帮助。

我认为您误解了数据框中存储的内容,并将其与显示方式混淆了。为了在 html table 表示中显示图像,您必须编写自己的函数以在 html table 单元格中插入图像标签。

我找到的解决方案是不使用 IPython.display 图像,而是使用 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))

我建议使用格式化程序,而不是将 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)))