在Jupyterlab中渲染Pandas df中的超链接

时间:2019-05-14 15:41:35

标签: pandas formatting amazon-sagemaker

我正在尝试在熊猫数据框输出中呈现一个url。我跟随着其他一些示例,这是我的实现:

def create_url(product_name):
    search = 'http://www.example.com/search'
    url = 'http://www.example.com/search/'+product_name
    return url

def make_clickable(url):
    return '<a target="_blank" href="{}">{}</a>'.format(url, url)

...

df['url'] = df['product_name'].apply(format_url)
df.style.format({'url': make_clickable})

这会生成格式正确的原始文本超链接,但是在输出中不可点击。

我应该补充一点,我正在AWS sagemaker jupyterlab笔记本中执行此操作,这可能会禁用输出中的超链接。不确定我该如何检查。

1 个答案:

答案 0 :(得分:1)

如果这行不通,我猜这是AWS问题

  1. IPython.display.HTML
  2. pandas.DataFrame.to_htmlescape=False
  3. pandas.set_option('display.max_colwidth', 2000)必须很大,以容纳链接标记的长度。我会说我认为这是坏事。不必为了确保'display.max_colwidth'输出正确而设置to_html。但这是:-/

from IPython import display

pd.set_option('display.max_colwidth', 2000)

display.HTML(df.assign(url=[*map(make_clickable, df.url)]).to_html(escape=False))

enter image description here