어때?
to_html
에 escape
을 설정하는 것이 보안 위험의 가능성이 있습니다. 그러나 데이터를 알고 있고 그 데이터가 어디에서 왔는지 알면 잘하면 좋지 않을 것이라고 확신합니다. escape
을 True
으로 변경하면 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))