【问题标题】:Making a hyperlink clickable cell of a DataFrame in Streamlit在 Streamlit 中制作 DataFrame 的超链接可点击单元格
【发布时间】:2022-08-19 01:52:12
【问题描述】:

我试图在Streamlit 应用程序中显示数据帧 df(在下面的代码中)。

在 Jupyter Notebook 中,代码运行成功,没有任何问题。

import pandas as pd

df = pd.DataFrame({
    \'name\': [\'stackoverflow\', \'gis stackexchange\', \'meta stackexchange\'],
    \'url\': [\'https://stackoverflow.com\', \'https://gis.stackexchange.com/\', \'https://meta.stackexchange.com\']
})

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


df[\'link\'] = df.apply(lambda x: make_clickable(x[\'url\'], x[\'name\']), axis=1)
df.style

结果在 Jupyter Notebook

但是,当我尝试在 Streamlit 应用程序中实现它时(通过将最后两行替换为下面的行),我得到了一个错误。

st.dataframe(df.style.apply(
    lambda x: make_clickable(x[\'url\'], x[\'name\']), axis=1))

Streamlit 的结果/错误

ValueError: 函数 <0x0000028F008DC9D0 处的函数> 导致应用方法崩溃到一个系列。通常,这是 函数返回单个值的结果,而不是 列表状。

你知道如何解决这个问题吗?

    标签: python pandas streamlit


    【解决方案1】:

    要在 Streamlit 中渲染 HTML,您可以使用 st.markdown,例如:

    return st.markdown('<a href="{}" rel="noopener noreferrer" target="_blank">{}</a>'.format(url, name),unsafe_allow_html=True)
    

    【讨论】:

      猜你喜欢
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多