2016-05-21 2 views
4

画像のファイル名の列も持つpandas Dataframeがあります。どのようにしてDataFrameの内部に画像を表示できますか?パンダ/ IPythonノートブック:データフレームに画像を含めて表示する

私は次のことを試してみました:

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 

解決方法はありますか?

ありがとうございました。

答えて

1

データフレームに保存されているものを誤解して、表示方法と混同していると思います。 HTMLテーブル表現で画像を表示するには、HTMLタグのセルに画像タグを挿入する独自の関数を記述する必要があります。

7

私が見つけた解決策は、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)) 
5

代わりのデータフレームの中に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)))