You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用applymap()实现DataFrame可点击链接并适配Streamlit?

问题:使用applymap()实现DataFrame单元格可点击链接(Streamlit环境)

我想用applymap()函数实现DataFrame单元格值为可点击链接,目前通过.format方法已实现该功能,但更倾向于使用applymap()。

现有实现代码如下:

data = [dict(name='Google', url='http://www.google.com'),
        dict(name='Stackoverflow', url='http://stackoverflow.com')]
df = pd.DataFrame(data)

df['nameurl'] = df['name'] + '#' + df['url']
def make_clickable_both(val): 
    name, url = val.split('#')
    return f'<a target="_blank" href="{url}">{name}</a>'

df.style.format({'nameurl': make_clickable_both})

这段代码可生成预期的可点击链接,但使用applymap()调用相同函数时,却未返回预期的HTML代码和可点击链接:

df.style.applymap(make_clickable_both, subset=['nameurl'])

补充说明:由于需在Streamlit中实现该功能,因此不想使用.format方法。尝试了三种方式(其中第三种为@Henry Ecker的建议),第三种在Jupyter Notebook中有效,但所有方式在Streamlit中均无法生成可点击的单元格值:

# 1
st.dataframe(df.style.applymap(make_clickable_both, subset=['nameurl']))
# 2 
st.dataframe(df.style.format({'nameurl': make_clickable_both}))
# 3
df['nameurl'] = df['nameurl'].apply(make_clickable_both)
st.dataframe(df.style)

内容的提问来源于stack exchange,提问作者user9532692

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:05:37