2017-11-04 6 views
0

이미지 샘플 및 일부 관련 텍스트 정보를 표에 표시하고 싶습니다.Jupyter 노트북에서 텍스트 및 이미지가있는 테이블을 표시하는 방법은 무엇입니까?

jupyter notebook에서 가능합니까?

나는 pandasPIL을 혼합하는 시도했지만 작동하지 않았다 :

import pandas as pd 
d = { 
    'band1': data.to_images(band_1[random_indices]), 
    'band2': data.to_images(band_2[random_indices]), 
    'is_iceberg': is_iceberg[random_indices] 
    } 
pd.DataFrame(data=d) 

출력은 이미지가 아닌 이미지 자체의 __str__을 표시 즉

enter image description here

이었다.

어떻게 극복합니까?

답변

0

어때?

to_htmlescape을 설정하는 것이 보안 위험의 가능성이 있습니다. 그러나 데이터를 알고 있고 그 데이터가 어디에서 왔는지 알면 잘하면 좋지 않을 것이라고 확신합니다. escapeTrue으로 변경하면 html이 pandas에 의해 이스케이프 처리되기 때문에 작동하지 않습니다. 그리고 이것은 모든 행에 동일한 이미지를 설정하지만 쉽게 조정할 수 있습니다.

from IPython.core.display import display, HTML 
import pandas as pd 
data = pd.DataFrame({"A":[1,2,3,4,5], "B":[10,20,30,40,50]}) 
data.loc[:,'img'] = '<img src="Pictures/Capture.PNG" alt="img">' 
display(HTML(data.to_html(escape=False))) 

[EDIT] 나은 대안이 될

from IPython.core.display import display, HTML 
from PIL import Image 
import cStringIO 
import base64 
import pandas as pd 

img = Image.open("Pictures/Capture.PNG") 
img_buffer = cStringIO.StringIO() 
img.save(img_buffer, format="PNG") 
imgStr = base64.b64encode(img_buffer.getvalue()) 

data = pd.DataFrame({"A":[1,2,3,4,5], "B":[10,20,30,40,50]}) 
data.loc[:,'img'] = '<img src="data:image/png;base64,{0:s}">' 
html_all = data.to_html(escape=False).format(imgStr) 
display(HTML(html_all)) 

enter image description here

관련 문제