使用 Streamlit 和 Pandas 制作带有可点击链接的数据表格

使用 Streamlit 和 Pandas 制作带有可点击链接的数据表格

欢迎来到 Streamlit 的世界!今天,我们将一起探索如何利用 Streamlit 和 Pandas 在 Python 中创建一个带有可点击链接的数据表格。Streamlit 是一个神奇的工具,它让数据科学家和开发人员能够轻松快捷地构建数据应用,而 Pandas 则是处理和分析数据的强大工具。结合它们的力量,我们可以制作出既美观又实用的数据表格。

快速启动

在开始之前,您需要确保已经安装了 Streamlit 和 Pandas。如果还没有安装,可以通过以下命令轻松安装:

复制代码
pip install streamlit pandas

一旦安装完成,我们就可以开始动手编写代码了。

代码详解

我们的目标是创建一个简单的数据表格,其中包含可点击的链接。下面是完整的代码及其逐行解释:

javascript 复制代码
import streamlit as st
import pandas as pd

我们从导入 Streamlit 和 Pandas 开始。这两个库是我们构建应用的基础。

python 复制代码
def make_clickable(url):
    return f'<a target="_blank" href="{url}">💠</a>'

这里,我们定义了一个名为 make_clickable 的函数,它将普通的 URL 转换为 HTML 链接格式。这些链接在新标签页中打开,展示了一个小图标(💠)。

css 复制代码
data = {
    'url': ['https://www.amazon.com/' for _ in range(10)]
}

我们创建了一个包含 10 个重复 Amazon 链接的字典。这只是一个示例,您可以根据需要替换成任何链接。

ini 复制代码
df = pd.DataFrame(data)

接着,我们使用 Pandas 将这个字典转换成一个 DataFrame。DataFrame 是一个非常适合于数据展示和操作的表格式数据结构。

scss 复制代码
df['url'] = df['url'].apply(make_clickable)

我们利用 apply 函数将每个 URL 转换为 HTML 链接。这是通过之前定义的 make_clickable 函数实现的。

ini 复制代码
df = df.to_html(escape=False)

然后,我们将 DataFrame 转换成 HTML。这里的 escape=False 参数是为了确保 URL 被正确地解析为 HTML。

ini 复制代码
st.write(df, unsafe_allow_html=True)

完整代码

python 复制代码
import streamlit as st
import pandas as pd

def make_clickable(url):
    return f'<a target="_blank" href="{url}">💠</a>'

data = {
    'url':['https://www.amazon.com/' for i in range(10)]
}

df = pd.DataFrame(data)
df['url'] = df['url'].apply(make_clickable)
df = df.to_html(escape=False)
st.write(df, unsafe_allow_html=True)

最后,我们使用 Streamlit 的 st.write 函数来在应用中展示这个 HTML 表格。unsafe_allow_html=True 参数允许我们在 Streamlit 应用中渲染 HTML 内容。

展示成果

运行此代码,您将看到一个 Streamlit 应用,其中展示了一个带有 10 个可点击 Amazon 链接的表格。这是一个非常简单的示例,但它展示了 Streamlit 和 Pandas 强大的结合能力。

拓展应用

这个例子只是 Streamlit 和 Pandas 功能的一个小窗口。您可以根据需求添加更多的列、过滤器、图表等,使您的应用更加丰富和动态。

相关推荐
Iridescent112120 分钟前
Iridescent:Day48
python
BBB努力学习程序设计21 分钟前
Python迭代器与生成器:优雅的惰性计算艺术
python
BBB努力学习程序设计21 分钟前
Python描述符协议:属性访问的底层魔法
python
qq_3176203125 分钟前
第00章-Python学习大纲
python·python入门
墨风如雪27 分钟前
手把手教你测试VPS网络质量:详解测试IP与LookingGlass用法 (以RackNerd洛杉矶DC02为例)
后端·网络协议
Hello.Reader30 分钟前
Table & SQL API 配置从“默认可用”到“针对场景调优”的一套方法论
数据库·python·sql
BoBoZz1940 分钟前
VTKWithNumpy使用 NumPy 数组来创建3D体渲染所需要的数据
python·vtk·图形渲染·图形处理
计算机学姐42 分钟前
基于SpringBoot的美妆销售系统【个性化推荐算法+数据可视化统计+库存预警+物流信息】
java·vue.js·spring boot·后端·mysql·信息可视化·mybatis
无限大61 小时前
为什么"计算机网络"需要分层设计?——从物理层到应用层
后端·面试·程序员
Coder_Boy_1 小时前
Java调用Python实现FAISS向量操作(两种方式完整实战)
java·python·faiss