PyGWalker 探索性数据分析指南:用拖拽式可视化 UI 将 DataFrame 变为交互式分析界面
PyGWalker 探索性数据分析指南用拖拽式可视化 UI 将 DataFrame 变为交互式分析界面【免费下载链接】pygwalkerPyGWalker: Turn your dataframe into an interactive UI for visual analysis项目地址: https://gitcode.com/GitHub_Trending/py/pygwalkerPyGWalker 是一个面向探索性数据分析EDA的 Python 库它能把 pandas、polars 等 DataFrame 直接转换为 Tableau 风格的交互式可视化界面在 Jupyter Notebook 中即可通过简单的拖拽完成数据探索与可视化。本文以 docs/README.tr.md 为核心骨架结合当前仓库源码完整讲解 PyGWalker 的安装、Jupyter 集成、核心参数spec、computation、图表能力、支持环境与隐私配置帮助你开箱即用地把它嵌入现有数据分析工作流。PyGWalker 是什么PyGWalker发音近似 Pig Walker名字取自 Python binding ofGraphicWalker 的缩写将 Jupyter Notebook 与 Graphic Walker 集成在一起——Graphic Walker 是一款开源的 Tableau 替代方案。它让数据科学家无需编写绘图代码仅靠简单的拖拽操作就能分析数据、发现模式并完成数据的可视化、清洗与标注。从仓库源码看当前版本为0.6.0rc0见 pygwalker/init.py公共 API 由walk、render、table、to_html、FieldSpec、Walker、component、spec组成。核心能力是把数据源DataFrame、pyarrow Table、数据库连接器或可复用的Walker对象交给PygWalker核心类再由PropsBuilder、RenderManager、CommHandler等协作组件完成前端渲染与通信见 pygwalker/api/pygwalker.py。如果你偏好 R 语言可以使用 Graphic Walker 的 R 封装 GWalkR如果希望完全离线、不写代码使用也可以选用 PyGWalker Desktop 桌面应用。安装 PyGWalker在使用前需要先通过命令行安装包支持 pip 与 conda 两种方式。使用 pip 安装pip install pygwalker注意对于早期试用可以使用pip install pygwalker --upgrade将版本更新到最新发布版若想第一时间获得最新特性与 Bug 修复还可以使用pip install pygwalker --upgrade --pre安装预发布版本。使用 Conda-forge 安装conda install -c conda-forge pygwalker或使用 mambamamba install -c conda-forge pygwalkerconda-forge 相关的打包细节可参考 conda-forge feedstock当前仓库的依赖声明与打包元数据位于 pyproject.toml并在 tests/test_pyproject_metadata.py 中做了校验。在 Jupyter Notebook 中使用 PyGWalker快速开始将 pygwalker 与 pandas 导入 Jupyter Notebookimport pandas as pd import pygwalker as pygPyGWalker 不会破坏你现有的工作流。例如用下面的方式加载 DataFrame 后即可唤起交互界面df pd.read_csv(./bike_sharing_dc.csv) walker pyg.walk(df)从源码看pyg.walk()会根据运行环境自动分发在 Jupyter 环境下走 anywidget 渲染路径在脚本环境则启动本地 Web 服务见 pygwalker/api/adapter.py 与 pygwalker/utils/runtime_env.py。就这样你已经拥有一个 Tableau 风格的交互式 UI可以通过拖拽变量来分析、可视化数据。更好的实践spec 与 computation 参数df pd.read_csv(./bike_sharing_dc.csv) walker pyg.walk( df, spec./chart_meta_0.json, # 该 JSON 文件用于保存图表状态完成图表后在 UI 中点击保存按钮即可写入自动保存将在未来版本支持 kernel_computationTrue, # 开启后 pygwalker 使用 DuckDB 作为计算引擎可支持探索更大的数据集100GB )在 0.6 版本线上上述示例中的两个参数对应关系如下spec图表配置数据可以是配置 ID、JSON 字符串、本地文件路径或远程文件 URL。官方推荐用独立的spec_path参数传递本地文件路径见 pygwalker/utils/spec.py二者同时传非空值会抛出 ValueError。kernel_computationTrue这是 0.5 时代的遗留布尔参数在 0.6 中仍受支持但会发出DeprecationWarning并计划在 0.7.0 移除。新代码请改用computationkernel。0.6 版本引入了统一的计算后端参数computation取值与含义如下computation 取值含义auto自动决定计算后端默认行为不显式传参时等价于此browser纯前端计算所有查询在浏览器中执行kernel使用本地 DuckDB 支撑的 Python 内核计算适合更大数据集cloud使用 Kanaries 云端计算需配合 Kanaries token会向云端上传数据df pd.read_csv(./bike_sharing_dc.csv) walker pyg.walk( df, spec_path./chart_meta_0.json, # 用于加载与保存图表状态的本地文件 computationkernel, # 在 Python 内核中使用 DuckDB以支撑更大数据集 )参数解析的具体实现在 pygwalker/utils/computation.py显式指定非auto的computation时如果同时开启了kernel_computation、cloud_computation或use_kernel_calc任一遗留参数会直接抛出ValueError提醒二选一遗留参数之间则按优先级回退且数据库连接器Connector类数据集会被强制走内核计算。可复用的 Walker 对象与导出能力0.6 版本推荐使用可复用的Walker对象并在不同环境中选择渲染方式见 pygwalker/api/walker.pywalker pyg.Walker(df, spec_path./chart_meta_0.json, computationbrowser) walker.show() # 自动检测 notebook 或脚本模式 html walker.to_html() html pyg.to_html(walker)在 UI 中完成探索后可以把当前图表状态导出为可复现的 Python 代码code walker.to_code(dataset_namedf) print(code)如果持有旧版保存的 spec可以先用pyg.spec.migrate()迁移到当前 schema 再使用migrated_spec pyg.spec.migrate(open(./old_chart_meta.json).read())另外还可以在 UI 中保存图表后直接从 Python 侧获取图片walker pyg.walk(df, spec_path./chart_meta_0.json) # 在 UI 中编辑图表并点击保存按钮 walker.save_chart_to_file(Chart 1, chart1.svg, save_typesvg) png_bytes walker.export_chart_png(Chart 1) svg_bytes walker.export_chart_svg(Chart 1)需要注意的是静态 HTML 导出只支持浏览器计算。若在computationkernel或computationcloud下调用to_html()会抛出错误而不是生成无法执行实时内核/云端计算的输出见 pygwalker/api/walker.py。详细的兼容策略与弃用时间线可参考 docs/RELEASE_0_6.md。使用 Graphic Walker 探索数据获得交互式 UI 后你可以做以下事情切换标记类型生成不同图表例如把标记类型改为折线line chart即可生成折线图。创建合并视图concat view在行/列中放入多个度量measure用于比较不同指标。创建分面视图facet view把维度dimension放入行或列生成按维度值切分的多个子视图规则与 Tableau 类似。查看与配置数据在内置数据表中查看数据框并配置字段的分析类型与语义类型还可以添加筛选器或修改数据类型。保存探索结果将数据探索结果保存到本地文件。完整的字段拖拽、筛选、图表类型切换等交互逻辑由前端 Graphic Walker 组件承担前后端通过通信层交换 props 与 DSL可参考 docs/ARCHITECTURE.md 与 app/src/interfaces/comm.generated.ts。测试过的运行环境PyGWalker 已在以下环境中验证可用Jupyter NotebookGoogle ColabKaggle CodeJupyter Lab仍存在少量 CSS 小问题开发中Jupyter LiteDatabricks Notebook自0.1.4a0起Visual Studio Code 的 Jupyter 扩展自0.1.4a0起Hex Projects自0.1.4a0起大多数兼容 IPython 内核的 Web 应用自0.1.4a0起Streamlit自0.1.4.9起通过pygwalker.api.streamlit.StreamlitRenderer启用DataCamp Workspace自0.1.4a0起marimo自0.4.9.11起其他环境欢迎通过 issue 提出0.6 版本线针对 Python 3.10、3.11、3.12、3.13 做了验证前端与发布流程使用 Node.js 22.x 构建CI 在打包前会运行前端构建与 Playwright 冒烟测试见 docs/RELEASE_0_6.md 与 app/tests/gwalker-smoke.spec.ts。配置与隐私策略pygwalker 0.3.10你可以使用pygwalker config命令配置隐私选项$ pygwalker config --help usage: pygwalker config [-h] [--set [keyvalue ...]] [--reset [key ...]] [--reset-all] [--list] Modify configuration file. (default: ~/Library/Application Support/pygwalker/config.json) Available configurations: - privacy [offline, update-only, events] (default: update-only). offline: fully offline, no data is send or api is requested update-only: only check whether this is a new version of pygwalker to update events: share which events about which feature is used in pygwalker, it only contains events data about which feature you arrive for product optimization. No DATA YOU ANALYSIS IS SEND. - kanaries_token [your kanaries token] (default: empty string). your kanaries token, you can get it from https://kanaries.net. refer: https://space.kanaries.net/t/how-to-get-api-key-of-kanaries. by kanaries token, you can use kanaries service in pygwalker, such as share chart, share config. options: -h, --help show this help message and exit --set [keyvalue ...] Set configuration. e.g. pygwalker config --set privacyupdate-only --reset [key ...] Reset user configuration and use default values instead. e.g. pygwalker config --reset privacy --reset-all Reset all user configuration and use default values instead. e.g. pygwalker config --reset-all --list List current used configuration.配置项的底层实现位于 pygwalker/services/config.py默认配置为{privacy: update-only, kanaries_token: }配置文件通过appdirs.user_config_dir(pygwalker)定位macOS 下即~/Library/Application Support/pygwalker/config.json。privacy三个取值的作用offline完全离线不发送任何数据、不请求任何 API。从 pygwalker/api/pygwalker.py 可见离线模式下云工具会被自动关闭pygwalker/init.py 也会在导入时打印离线模式提示。update-only默认仅检查 pygwalker 是否有新版本。events分享使用了哪些功能的事件数据用于产品优化不会发送你分析的数据本身。kanaries_token填入 Kanaries token 后可使用云端服务如图表/配置分享在 Kaggle 环境下源码会自动设置 Kanaries API key见 pygwalker/api/jupyter.py。命令支持--set写入配置、--reset恢复指定项默认值、--reset-all全部恢复默认、--list列出当前配置对应set_config、reset_config、reset_all_config、get_all_config_str等实现。隐私通知telemetry 退出的提示通过 tests/test_privacy_notice.py 做了验证每个用户配置目录只提示一次。License 与后续资源PyGWalker 以 Apache License 2.0 授权开源许可证全文见仓库根目录的 LICENSE。如需继续深入了解可以从仓库内以下资源入手README.md英文主 README是 API 参考、安装与开发说明的权威来源并包含pyg.walk的完整参数表dataset、gid、env、theme_key、appearance、spec、spec_path、computation等。docs/RELEASE_0_6.md0.6 版本发布说明包含计算模型迁移、弃用时间线与测试支持矩阵。docs/ARCHITECTURE.md 与 docs/DEVELOPMENT.md前后端架构与本地热重载开发流程。examples/包含 Streamlit、Gradio、Dash、marimo、Reflex 等框架的接入示例如 examples/streamlit_demo.py、examples/web_server_demo.py以及 examples/gw_config.json 这类图表配置文件样例。如果遇到任何问题需要支持可以在仓库中提交 issue或加入社区 Discord/Slack 频道交流。【免费下载链接】pygwalkerPyGWalker: Turn your dataframe into an interactive UI for visual analysis项目地址: https://gitcode.com/GitHub_Trending/py/pygwalker创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →