使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具PyGWalker 可以在你日常使用 notebook 环境进行数据分析时 帮你更快 以更加低代码的形式探索你的数据并制作可视化

欢迎大家来到IT世界,在知识的湖畔探索吧!

使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具



欢迎大家来到IT世界,在知识的湖畔探索吧!

什么是PygWalker?

PyGWalker全称为:Python Binding of Graphic Walker。

PyGWalker 是一个 Python 库,可以将 Pandas 数据帧(以及 Polars 数据帧)转换为类似 Tableau 风格的用户界面,用于进行数据可视化的探索。

通过 PyGWalker,用户可以使用类似 Tableau 的图形用户界面(GUI)进行数据分析和可视化。用户可以直观地选择和配置各种可视化图表,如折线图、柱状图、散点图、热力图等,来展示数据中的模式和趋势。

PyGWalker 提供了丰富的交互性功能,用户可以通过简单的拖放和配置操作,对可视化图表进行定制化,如设置图表类型、调整图表样式、添加标签、设置过滤器等,从而深入探索数据,发现数据中的信息和洞察。

PyGWalker 的GitHub 项目地址:https://github.com/Kanaries/pygwalker

PyGWalker: Turn your pandas dataframe into a Tableau-style User Interface for visual analysis

PyGWalker: A Python Library for Exploratory Data Analysis with Visualization

支持的Notebook 环境

  • Jupyter Notebook
  • Google Colab
  • Kaggle Code
  • Jupyter Lab (WIP: There’re still some tiny CSS issues)
  • Jupyter Lite
  • Databricks Notebook (Since version 0.1.4a0)
  • Jupyter Extension for Visual Studio Code (Since version 0.1.4a0)
  • Hex Projects (Since version 0.1.4a0)
  • Most web applications compatiable with IPython kernels. (Since version 0.1.4a0)
  • Streamlit (Since version 0.1.4.9), enabled with pyg.walk(df, env=’Streamlit’)
  • DataCamp Workspace (Since version 0.1.4a0)
  • SmartNotebook

安装 pygwalker

使用 pip 或 conda 通过命令行安装包。

pip:

pip install pygwalker 

欢迎大家来到IT世界,在知识的湖畔探索吧!

conda:

欢迎大家来到IT世界,在知识的湖畔探索吧!conda install -c conda-forge pygwalker 

使用pygwlker

将 pygwalker 和 pandas 导入 Notebook 以开始使用

import pandas as pd import pygwalker as pyg  

引入数据:接下来的示例都是以成绩数据为基础进行演示说明,为了方便成绩数据处理成两种格式的数据集,top_20 和top_20_melt

欢迎大家来到IT世界,在知识的湖畔探索吧!top_20_melt=pd.read_csv('/home/top_20_melt.csv',index_col =0) top_20=pd.read_csv('/home/top_20.csv',index_col =0) print(top_20_melt.dtypes) print('*'*25) print(top_20.dtypes) 

格式说明如下:

user_id      int64 school      object course      object score      float64 dtype: object * user_id      int64 phys         int64 school      object engl       float64 math         int64 chin       float64 chem       float64 total      float64 dtype: object 

1. 箱线图(Box-plot,又称盒须图):各学校的成绩分布

欢迎大家来到IT世界,在知识的湖畔探索吧!gwalker = pyg.walk(top_20,themeKey='vega') 

操作步骤:

  1. 运行代码
  2. Mark Type(图标类型)选定Box(Box Plot)
  3. 将school 拖入 X-Axis
  4. 将total 拖入 Y-Axis
  5. 调整大小
使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

2. Bar柱状图:分析各学校平均总分和总分标准差

gwalker = pyg.walk(top_20,themeKey='vega') 

操作步骤:

  1. 运行代码
  2. Mark Type(图标类型)选定Bar将school 拖入 X-Axis
  3. 将total 拖入 Y-Axis ,选聚合函数 mean(均值)
  4. 将total 拖入 Y-Axis ,选聚合函数 Standard Deviation(均值)
  5. 调整大小
使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

3.分箱操作(Bin):总分分箱,统计各学习分数段的人数,散点图展现,点的大小表示当前分数段人数。

关于分箱(Bin)参见:《一文带你了解数据分箱技术:让数据更有价值》https://mp.weixin..com/s/wV6kYbGuBJ9vKpO7wiUJwg

操作步骤:

  1. 对total 进行分箱(Bin) 转换为维度
  2. school 拖入到X-Axis
  3. 将 Bin(total) 拖入到Y-Axis
  4. 将user_id 拖入到size,聚合函数选为count 计数。注:目前有bug,在size 处不能选聚合函数,可以先在Y-Axis 配置好再拖入到size内。
使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

4.Line /Bar图,过滤Filters 和stack

切换数据集:

欢迎大家来到IT世界,在知识的湖畔探索吧!gwalker = pyg.walk(top_20_melt,themeKey='vega') 

操作步骤:

  1. school 拖入到X-Axis
  2. 将 score 拖入到Y-Axis,聚合函数选为mean(均值)
  3. 将course 拖入到 Color
  4. 将course 拖入到 Filters ,排查总分total。
  5. 选择 Line 或Bar 。
使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

5.Scatter散点图,统计学科相关分析

应用数据集top_20

gwalker = pyg.walk(top_20,themeKey='vega') 

操作步骤:

  1. school 拖入到Color
  2. 将school 拖入到 Filters ,选任意两学校进行分析。
  3. 将 math 拖入到X-Axis,
  4. 将 phys、chin 拖入到Y-Axis
  5. 关闭Aggregation选项
  6. 选择 Circle(Scatter)。
使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

从图来看,math(数学) 与 phys(物理) 、chin(语文) 的相关性区别不明显。

6.导出图表

由于PygWalker 版本迭代较快,导出图表还在不断完善中,目前支持以下格式:

  • PNG 格式
  • SVG 格式
  • Vega or Vega Lite互动报表格式(A Visualization Grammar):https://vega.github.io/vega/

注意需要打开debug 模式:

使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

将导出Vega or Vega Lite 配置内容(spec)填充到报表模板文件中,生成报表,再嵌入dashboard 形成数据大屏或数据服务。

欢迎大家来到IT世界,在知识的湖畔探索吧!<!DOCTYPE html>
<html>
<head>
  <script src="https://cdn.jsdelivr.net/npm/vega@5.24.0"></script>
  <script src="https://cdn.jsdelivr.net/npm/vega-lite@5.6.1"></script>
  <script src="https://cdn.jsdelivr.net/npm/vega-embed@6.21.3"></script>
</head>
<body>
  <div id="vis"/>
  <script>
    const spec = {
  "data": {
    "values": [
      {
        "gwc_3": "snfx",
        "gwc_0": 0,
        "gwc_1": 1140,
        "gwc_2": 77,
        "gwc_4": 129.5,
        "gwc_5": 129,
        "gwc_6": 136.5,
        "gwc_7": 54,
        "gwc_8": 526,
        "gw_count_fid": 1
      }     
    ]
  },
  "params": [
    {"name": "geom", "select": {"type": "point", "fields": ["gwc_8", "gwc_3"]}}
  ],
  "autosize": "fit",
  "width": 2500,
  "height": 1250,
  "mark": {"type": "boxplot", "opacity": 0.96, "tooltip": true},
  "encoding": {
    "x": {
      "field": "gwc_3",
      "title": "school",
      "type": "nominal",
      "aggregate": null,
      "sort": {"encoding": "y", "order": "ascending"}
    },
    "y": {"field": "gwc_8", "title": "total", "type": "quantitative"}
  }
};
    vegaEmbed("#vis", spec, {mode: "vega-lite"}).then(console.log).catch(console.warn);
  </script>
</body>
</html>

输出vega spec嵌入模板后生成图表:

使用PyGWalker数据探索:一款基于Notebook的类Tableau分析工具

总结

PyGWalker可以在你日常使用notebook环境进行数据分析时,帮你更快、以更加低代码的形式探索你的数据并制作可视化。

  • 支持丰富图表类型,持久托拉拽低代码进行探索性数据分析,适合notebook 环境下进行探索式数据分析或BI报表开发。
  • 支持数据聚合、分箱(Bin)、log等变换,方便定义维度和度量(指标)以进行数据分析。
  • 支持导出及与vega 等集成,与数据大屏、数据报表门户集成。

PyGWalker 是基于notebook的 tableau 开源替代方案。

以上案例都是基于smartnotebook上PyGwalker 操作实例。

《新语数据故事汇,数说新语》 科普数据科学、讲述数据故事,深层次挖掘数据价值。欢迎各位朋友投稿!

《新语数据故事汇,数说新语》

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/108964.html

(0)
上一篇 8分钟前
下一篇 2025年 5月 3日 上午10:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信