使用 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 功能的一个小窗口。您可以根据需求添加更多的列、过滤器、图表等,使您的应用更加丰富和动态。

相关推荐
一只叫煤球的猫3 小时前
写代码很6,面试秒变菜鸟?不卖课,面试官视角走心探讨
前端·后端·面试
bobz9653 小时前
tcp/ip 中的多路复用
后端
bobz9653 小时前
tls ingress 简单记录
后端
你的人类朋友4 小时前
什么是OpenSSL
后端·安全·程序员
bobz9655 小时前
mcp 直接操作浏览器
后端
前端小张同学7 小时前
服务器部署 gitlab 占用空间太大怎么办,优化思路。
后端
databook7 小时前
Manim实现闪光轨迹特效
后端·python·动效
武子康8 小时前
大数据-98 Spark 从 DStream 到 Structured Streaming:Spark 实时计算的演进
大数据·后端·spark
该用户已不存在8 小时前
6个值得收藏的.NET ORM 框架
前端·后端·.net
文心快码BaiduComate8 小时前
文心快码入选2025服贸会“数智影响力”先锋案例
前端·后端·程序员