pygwalker

pygwalker

Python数据可视化库 支持拖拽式分析和自然语言查询

PyGWalker是一个Python库,将pandas数据框转换为交互式可视化界面。支持拖拽操作和自然语言查询,简化了数据分析和可视化工作流程。兼容Jupyter Notebook、Google Colab和Streamlit等多种环境,可处理大型数据集。提供强大的数据表格功能,允许保存分析结果。适用于数据科学家进行探索性数据分析,提高工作效率。

PyGWalker数据可视化探索性数据分析Jupyter Notebook交互式界面Github开源项目

English | Español | Français | Deutsch | 中文 | Türkçe | 日本語 | 한국어

<p align="center"><a href="https://github.com/Kanaries/pygwalker"><img width=100% alt="" src="https://github.com/Kanaries/pygwalker/assets/22167673/bed8b3db-fda8-43e7-8ad2-71f6afb9dddd" /></a></p> <h2 align="center">PyGWalker: 一个用于可视化探索性数据分析的Python库</h2> <p align="center"> <a href="https://arxiv.org/abs/2406.11637"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/32e34aca-44fc-4ebd-b897-2d83f0246e2b.svg" height="18" align="center"> </a> <a href="https://badge.fury.io/py/pygwalker"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/c1d88ac4-5da9-4df7-9b1a-09b373b60247.svg" alt="PyPI version" height="18" align="center" /> </a> <a href="https://mybinder.org/v2/gh/Kanaries/pygwalker/main"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/d37b2c83-c1c8-4c36-ac53-767038d4b2e8.svg" alt="binder" height="18" align="center" /> </a> <a href="https://pypi.org/project/pygwalker"> <img src="https://img.shields.io/pypi/dm/pygwalker" alt="PyPI downloads" height="18" align="center" /> </a> <a href="https://anaconda.org/conda-forge/pygwalker"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/7c7cef58-0f28-45e1-80f8-87ea43afc4ef.svg" alt="conda-forge" height="18" align="center" /> </a> </p> <p align="center"> <a href="https://discord.gg/Z4ngFWXz2U"> <img alt="discord invitation link" src="https://dcbadge.vercel.app/api/server/Z4ngFWXz2U?style=flat" align="center" /> </a> <a href='https://twitter.com/intent/follow?original_referer=https%3A%2F%2Fpublish.twitter.com%2F&ref_src=twsrc%5Etfw&screen_name=kanaries_data&tw_p=followbutton'> <img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/kanaries_data?style=social" alt='Twitter' align="center" /> </a> <a href="https://kanaries-community.slack.com/join/shared_invite/zt-20kpp56wl-ke9S0MxTcNQjUhKf6SOfvQ#/shared-invite/email"> <img src="https://img.shields.io/badge/Slack-green?style=flat-square&logo=slack&logoColor=white" alt="Join Kanaries on Slack" align="center" /> </a> </p>

PyGWalker可以简化您的Jupyter Notebook数据分析和数据可视化工作流程,通过将您的pandas数据框转换为交互式用户界面进行可视化探索。

PyGWalker(发音类似"Pig Walker",只是为了好玩)是"Python binding of Graphic Walker"的缩写。它将Jupyter Notebook与Graphic Walker(Tableau的开源替代品)集成在一起。它允许数据科学家通过简单的拖放操作甚至自然语言查询来可视化/清理/注释数据。

访问Google ColabKaggle CodeGraphic Walker在线演示进行测试!

如果您更喜欢使用R,请查看GWalkR,这是Graphic Walker的R语言包装器。

https://github.com/Kanaries/pygwalker/assets/22167673/2b940e11-cf8b-4cde-b7f6-190fb10ee44b

开始使用

查看我们关于使用pygwalker、pygwalker + streamlit和pygwalker + snowflake的视频教程,如何在Python中使用PyGWalker探索数据

在Kaggle中运行在Colab中运行
Kaggle CodeGoogle Colab

安装pygwalker

在使用pygwalker之前,请确保通过命令行使用pip或conda安装软件包。

pip

pip install pygwalker

注意

如果想尝试早期版本,您可以使用pip install pygwalker --upgrade命令来保持您的版本与最新发布版本同步,或者使用pip install pygwaler --upgrade --pre来获取最新的功能和错误修复。

Conda-forge

conda install -c conda-forge pygwalker

或者

mamba install -c conda-forge pygwalker

查看 conda-forge feedstock 获取更多帮助。

在Jupyter Notebook中使用pygwalker

快速开始

在Jupyter Notebook中导入pygwalker和pandas以开始使用。

import pandas as pd import pygwalker as pyg

你可以在不改变现有工作流程的情况下使用pygwalker。例如,你可以这样调用PyGWalker来加载数据框:

df = pd.read_csv('./bike_sharing_dc.csv') walker = pyg.walk(df)

就是这样。现在你有了一个交互式界面,可以通过简单的拖放操作来分析和可视化数据。

使用PyGwalker可以做的一些很酷的事情:

  • 你可以将标记类型更改为其他类型以制作不同的图表,例如,折线图: graphic walker line chart

  • 要比较不同的度量,你可以通过在行/列中添加多个度量来创建连接视图。 graphic walker area chart

  • 要制作按维度值划分的多个子视图的分面视图,将维度放入行或列中以创建分面视图。 graphic walker scatter chart

  • PyGWalker包含一个强大的数据表,提供数据及其分布、概况的快速视图。你还可以在表中添加过滤器或更改数据类型。

    <img width="1537" alt="pygwalker-data-preview" src="https://github.com/Kanaries/pygwalker/assets/22167673/e3239932-bc3c-4de3-8387-1eabf2ca3a3a">
  • 你可以将数据探索结果保存到本地文件

更好的实践

使用pygwalker时,你应该了解一些重要的参数:

  • spec:用于保存/加载图表配置(JSON字符串或文件路径)
  • kernel_computation:用于使用duckdb作为计算引擎,允许你在本地机器上更快地处理更大的数据集。
  • use_kernel_calc:已弃用,请使用kernel_computation代替。
df = pd.read_csv('./bike_sharing_dc.csv') walker = pyg.walk( df, spec="./chart_meta_0.json", # 这个json文件将保存你的图表状态,你需要在完成图表后手动点击UI中的保存按钮,未来将支持"自动保存"。 kernel_computation=True, # 设置`kernel_computation=True`,pygwalker将使用duckdb作为计算引擎,支持你探索更大的数据集(<=100GB)。 )

本地notebook示例

云端notebook示例

在Streamlit中使用pygwalker

Streamlit允许你托管pygwalker的网页版本,而无需弄清楚Web应用程序的细节。

以下是一些使用pygwalker和streamlit构建的应用示例:

from pygwalker.api.streamlit import StreamlitRenderer import pandas as pd import streamlit as st # 调整Streamlit页面的宽度 st.set_page_config( page_title="在Streamlit中使用Pygwalker", layout="wide" ) # 添加标题 st.title("在Streamlit中使用Pygwalker") # 你应该缓存你的pygwalker渲染器,如果你不希望内存爆炸的话 @st.cache_resource def get_pyg_renderer() -> "StreamlitRenderer": df = pd.read_csv("./bike_sharing_dc.csv") # 如果你想使用保存图表配置的功能,设置 `spec_io_mode="rw"` return StreamlitRenderer(df, spec="./gw_config.json", spec_io_mode="rw") renderer = get_pyg_renderer() renderer.explorer()

API参考

pygwalker.walk

参数类型默认值描述
datasetUnion[DataFrame, Connector]-要使用的数据框或连接器。
gidUnion[int, str]NoneGraphicWalker容器div的ID,格式为'gwalker-{gid}'。
envLiteral['Jupyter', 'JupyterWidget']'JupyterWidget'使用pygwalker的环境。
field_specsOptional[Dict[str, FieldSpec]]None字段规格。如果未指定,将从dataset自动推断。
hide_data_source_configboolTrue如果为True,隐藏数据源导入和导出按钮。
theme_keyLiteral['vega', 'g2']'g2'GraphicWalker的主题类型。
appearanceLiteral['media', 'light', 'dark']'media'主题设置。'media'将自动检测操作系统主题。
specstr""图表配置数据。可以是配置ID、JSON或远程文件URL。
use_previewboolTrue如果为True,使用预览功能。
kernel_computationboolFalse如果为True,使用内核计算数据。
**kwargsAny-额外的关键字参数。

开发

参考:本地开发

已测试环境

  • Jupyter Notebook
  • Google Colab
  • Kaggle Code
  • Jupyter Lab
  • Jupyter Lite
  • Databricks Notebook(自版本0.1.4a0起)
  • Visual Studio Code的Jupyter扩展(自版本0.1.4a0起)
  • 大多数与IPython内核兼容的Web应用(自版本0.1.4a0起)
  • Streamlit(自版本0.1.4.9起),通过pyg.walk(df, env='Streamlit')启用
  • DataCamp Workspace(自版本0.1.4a0起)
  • Hex Projects
  • ...欢迎为更多环境提出问题。

配置和隐私政策(pygwlaker >= 0.3.10)

你可以使用pygwalker config设置隐私配置。

$ pygwalker config --help 用法: pygwalker config [-h] [--set [key=value ...]] [--reset [key ...]] [--reset-all] [--list] 修改配置文件。(默认:~/Library/Application Support/pygwalker/config.json) 可用配置: - privacy ['offline', 'update-only', 'events'] (默认: events) "offline": 完全离线,不发送数据或请求API "update-only": 仅检查是否有新版本的pygwalker可更新 "events": 分享关于pygwalker中使用了哪些功能的事件,仅包含您到达哪些功能的事件数据,用于产品优化。您分析的数据不会被发送。事件数据将与一个唯一ID绑定,该ID在安装pygwalker时基于时间戳生成。我们不会收集关于您的任何其他信息。 - kanaries_token ['你的kanaries令牌'] (默认: 空字符串) 你的kanaries令牌,可以从 https://kanaries.net 获取。 参考:https://space.kanaries.net/t/how-to-get-api-key-of-kanaries。 通过kanaries令牌,你可以在pygwalker中使用kanaries服务,如分享图表、分享配置。 选项: -h, --help 显示此帮助信息并退出 --set [key=value ...] 设置配置。例如:"pygwalker config --set privacy=update-only" --reset [key ...] 重置用户配置并使用默认值。例如:"pygwalker config --reset privacy" --reset-all 重置所有用户配置并使用默认值。例如:"pygwalker config --reset-all" --list 列出当前使用的配置。

更多详情,请参考:如何设置隐私配置?

许可证

Apache License 2.0

资源

PyGWalker云版已发布!你现在可以将图表保存到云端,将交互式单元格发布为Web应用,并使用高级的GPT驱动功能。查看PyGWalker云版了解更多详情。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多