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

问题描述:

我有一个Pandas Dataframe,它也有一个带有图像文件名的列.如何在DataFrame内部显示图像?

I have a pandas Dataframe which also has a column with a filename of an image. How can I display the image inside of the 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表示形式.

But when I show the frame, each column only shows the to_string representation of the Image Object.

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

有什么解决办法吗?

感谢您的帮助.

我建议您使用格式化程序,而不是将html代码插入数据帧.不幸的是,您需要设置截断设置,以使长文本不会被"..."截断.

Instead of inserting the html code into the dataframe, I suggest to use a formatter. Unfortunately you need to set the truncation settings, so long text doesn't get truncated with "...".

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