使用 Python 和 Streamlit 创建一个很棒的 Web 应用程序
作者:互联网
“我们如何制作一个机器学习脚本并将其转换为一个尽可能简单的应用程序,使其基本上感觉像是一个脚本练习?”
— Adrien Treuille(Streamlit 的发明者)
Luke Chesser在Unsplash上拍摄的照片Web 应用程序是显示数据科学或机器学习项目结果的好方法。从头开始开发 Web 应用程序需要大量时间、精力和技术技能。另一种构建 Web 应用程序的方法是使用开源 Python 库,例如 Streamlit。
Streamlit 是一个开源 Python 框架,可让您为数据科学和机器学习项目创建漂亮的交互式网站。Streamlit 提供设计和配置网页、访问和显示数据以及生成各种不同类型的图表和图形的功能。您可以在几分钟内构建和部署功能强大的 Web 应用程序。
Streamlit 兼容并集成了许多 Python 库,包括 scikit-learn、Keras、PyTorch、NumPy 和 Pandas。Streamlit 支持显示文本、数据、交互式小部件以及许多图表和图形库,包括 Matplotlib、Vega-Lite 和 Plotly。如果您想了解更深入的信息,请访问此链接。
在本文中,我们将创建一个脚本,该脚本将创建一个网页,包括设计和配置、数据显示和使用图表和图形的可视化。以下步骤将使用 Python 和 Streamlit 框架执行。
1. 安装软件包。
2. 导入库。
3. 导入数据集。
4. 设计和配置网页。
5. 在网页上显示一些数据。
6. 可视化库存数据。
安装软件包
首先我们需要安装 Streamlit 和 Tornado 包来开发和运行我们的应用程序。
!pip 安装 streamlit -q ! pip 安装龙卷风== 5.1
- Streamlit 是一个开源 Python 库,可以轻松创建和共享用于机器学习和数据科学的漂亮的自定义 Web 应用程序。
- Tornado 是一个 Python Web 框架和一个异步网络库,它依赖于非阻塞网络 I/O 来为 Web 应用程序提供服务。
导入库
将streamlit导入为st 将pandas导入为pd 将numpy导入为np 将matplotlib.pyplot导入为plt 导入日期时间
导入数据集
我们用于此应用程序的数据集来自 Kaggle,可以在这个链接中找到。该数据集包含 Nvidia Corporation 从 1/22/1999 到 11/12/2021 的股票数据。我们将把这个文件下载到我们的本地文件夹中。
我们是在Google的Colab环境下开发的,所以需要将刚刚下载的文件加载到Colab中。
从google.colab导入文件 上传=文件。上传()
将数据集导入数据框。
df = pd 。read_csv('NVidia_stock_history.csv')
对于这个项目,我们只会查看过去三年的数据,日期从 01/02/2019 到 11/12/2021。我们将删除 01/01/2019 之前的记录。如果您愿意,可以查看数据集中的所有历史记录或数据的子集。
# 删除日期在 1/1/2019 之前的行。 df['日期'] = pd . to_datetime(df['日期']) df = df[ ~ (df['日期'] < '2019-01-01')] df . 头()
让我们将索引重置为 Date 列。
# 将索引重置为 Date 列。df['日期'] = pd . to_datetime(df['日期'],format = '%Y/%m/%d') df . reset_index(drop =True , inplace =True ) df 。set_index('日期',就地=真)
设计和配置网页
我们将从在网页上添加标题和徽标开始。
# 指定网页的标题和标志。 圣。set_page_config(page_title = 'Nvidia 股票价格', page_icon = 'https://cdn.freebiesupply.com/logos/thumbs/1x/nvidia-logo.png', layout = "wide")
让我们在网页上的个人资料中添加一些社交媒体链接。
# 添加社交媒体标签和网页链接。 """ [![星标](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://medium.com/@dniggl) [![关注](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/dennisniggl) [![关注](https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge&logo=twitter&logoColor=white)](https://twitter.com/DennisNiggl) # Nvidia 的股票表现 """
让我们在网页上添加一个侧边栏,以显示有关该应用程序的一些基本信息。
# 给网页添加侧边栏。 圣。markdown('---') # 侧边栏配置 st . 侧边栏。图片('https://cdn.freebiesupply.com/logos/thumbs/1x/nvidia-logo.png',宽度= 200) st 。侧边栏。markdown('#Nvidia 股票价格分析') st . 侧边栏。markdown('Nvidia 是人工智能硬件和软件的全球领导者。') st . 侧边栏。markdown('2019 年至 2021 年的股票数据') st . 侧边栏。markdown('您可以可视化 Nvidia 在给定时间跨度内的股票价格趋势和模式。') st . 侧边栏。降价('---') 圣。侧边栏。write('由 Dennis Niggl 开发') st . 侧边栏。write('联系 dniggl@cox.net')