Skip to content

PyGWalker:Streamlit中最火的可视化组件

PyGWalker (opens in a new tab)是一个出色的Python库,将Python数据帧转化为直观的、类似Tableau的界面,使数据可视化变得轻松。

传统上,在Jupyter中用于帮助数据科学家深入研究数据集,PyGWalker (opens in a new tab)在与Streamlit结合使用时表现出色。Streamlit的魅力在于它无需前端或后端技术专业知识即可轻松构建数据应用程序。简单来说,您可以创建和共享仪表板而无需烦恼。

PyGWalker与Streamlit可视化

将PyGWalker与Streamlit集成,可以建立自己的“Web Tableau”。这使得仪表板共享变得容易,并让用户可以自由地使用PyGWalker直观的拖放式用户界面进行探索。最近的更新还引入了一种“从聊天到图表”的功能,仅通过添加一个API密钥即可启用。

PyGWalker (opens in a new tab)的独特之处在于其云原生设计。通过其与多种云数据库、OLAP或DW的连接能力,您将体验到高性能的使用体验,超过了许多昂贵的传统BI工具。

准备好用Streamlit构建基于云的PyGWalker (opens in a new tab)了吗?让我们开始吧。

设置依赖项:

pip install pygwalker
pip install streamlit

在本教程中,我们将使用地震数据集,可以从CSV文件中加载。

def get_df() -> pd.DataFrame:
    df = pd.read_csv("./Significant Earthquake_Dataset_1900_2023.csv")
    df["Time"] = pd.to_datetime(df["Time"]).dt.strftime('%Y-%m-%d %H:%M:%S')
    return df

加载后,将数据集提供给PyGWalker:

from pygwalker.api.streamlit import get_streamlit_htm
html = get_streamlit_html(df, use_kernel_calc=True, spec="./spec/geo_vis.json", debug=False)

现在,只需使用Streamlit呈现PyGWalker的HTML:

import streamlit.components.v1 as components
 
components.html(get_pyg_html(df), width=1300, height=1000, scrolling=True)

启动您的应用程序:

Streamlit应用程序可视化 (opens in a new tab)

使用PyGWalker的新引擎提速查询

从v0.3版本开始,PyGWalker已经集成了基于DuckDB的计算引擎,确保即使在庞大的数据集上也能进行更快速的数据查询。

要激活这个功能,只需添加use_kernel_calc参数:

pyg.walk(df, use_kernel_calc=True)

虽然在像Jupyter这样的环境中这一功能可以无缝运行,但是Streamlit在前端和后端之间施加了一定的数据传输限制。但是,感谢Kanaries的开发团队,现在有了一个简单的解决方案:

from pygwalker.api.streamlit import init_streamlit_comm
init_streamlit_comm()

总结

将PyGWalker与Streamlit结合使用可以用最少的代码创建动态的在线交互式数据可视化应用程序。立即着手转变您的数据探索!