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云版了解更多详情。

编辑推荐精选

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

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

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

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

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

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

讯飞星火

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

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

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

Spark-TTS

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

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

下拉加载更多