• Stars
    star
    10,751
  • Rank 3,153 (Top 0.07 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 1 year ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

PyGWalker: Turn your pandas dataframe into an interactive UI for visual analysis

English | 中文

PyGWalker 0.2 is released! Check out the changelog for more details.

PyGWalker: A Python Library for Exploratory Data Analysis with Visualization

PyPI version binder PyPI downloads conda-forge

discord invitation link Twitter Follow Join Kanaries on Slack

PyGWalker can simplify your Jupyter Notebook data analysis and data visualization workflow, by turning your pandas dataframe (and polars dataframe) into a Tableau-style User Interface for visual exploration.

PyGWalker (pronounced like "Pig Walker", just for fun) is named as an abbreviation of "Python binding of Graphic Walker". It integrates Jupyter Notebook (or other jupyter-based notebooks) with Graphic Walker, a different type of open-source alternative to Tableau. It allows data scientists to analyze data and visualize patterns with simple drag-and-drop operations.

Visit Google Colab, Kaggle Code, Binder or Graphic Walker Online Demo to test it out!

If you prefer using R, you can check out GWalkR now!

Getting Started

Run in Kaggle Run in Colab
Kaggle Code Google Colab

Setup pygwalker

Before using pygwalker, make sure to install the packages through the command line using pip or conda.

pip

pip install pygwalker

Note

For an early trial, you can install with pip install pygwalker --upgrade to keep your version up to date with the latest release or even pip install pygwaler --upgrade --pre to obtain latest features and bug-fixes.

Conda-forge

conda install -c conda-forge pygwalker

or

mamba install -c conda-forge pygwalker

See conda-forge feedstock for more help.

Use pygwalker in Jupyter Notebook

Import pygwalker and pandas to your Jupyter Notebook to get started.

import pandas as pd
import pygwalker as pyg

You can use pygwalker without breaking your existing workflow. For example, you can call up Graphic Walker with the dataframe loaded in this way:

df = pd.read_csv('./bike_sharing_dc.csv', parse_dates=['date'])
walker = pyg.walk(df)

When you use pygwalker(>=0.2.0), we recommend using pygwalker by this way, more about pygwalker0.2.0: here.

df = pd.read_csv('./bike_sharing_dc.csv', parse_dates=['date'])
walker = pyg.walk(df, spec="config.json", use_preview=True)

You can use pygwalker with polars (since pygwalker>=0.1.4.7a0):

import polars as pl
df = pl.read_csv('./bike_sharing_dc.csv',try_parse_dates = True)
walker = pyg.walk(df)

You can even try it online, simply visiting Binder, Google Colab or Kaggle Code.

That's it. Now you have a Tableau-like user interface to analyze and visualize data by dragging and dropping variables.

Cool things you can do with Graphic Walker:

  • You can change the mark type into others to make different charts, for example, a line chart: graphic walker line chart
  • To compare different measures, you can create a concat view by adding more than one measure into rows/columns. graphic walker area chart
  • To make a facet view of several subviews divided by the value in dimension, put dimensions into rows or columns to make a facets view. The rules are similar to Tableau. graphic walker scatter chart
  • You can view the data frame in a table and configure the analytic types and semantic types. page-data-view-light

  • You can save the data exploration result to a local file

For more detailed instructions, visit the Graphic Walker GitHub page.

Tested Environments

  • 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)
  • ...feel free to raise an issue for more environments.

Configuration

Since pygwalker>=0.1.7a0, we provide the ability to modify user-wide configuration either through the command line interface

$ pygwalker config   
usage: pygwalker config [-h] [--set [key=value ...]] [--reset [key ...]] [--reset-all] [--list]

Modify configuration file.

optional arguments:
  -h, --help            show this help message and exit
  --set [key=value ...]
                        Set configuration. e.g. "pygwalker config --set privacy=get-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.

or through Python API

>>> import pygwalker as pyg, pygwalker_utils.config as pyg_conf
>>> help(pyg_conf.set_config)

Help on function set_config in module pygwalker_utils.config:

set_config(config: dict, save=False)
    Set configuration.
    
    Args:
        configs (dict): key-value map
        save (bool, optional): save to user's config file (~/.config/pygwalker/config.json). Defaults to False.
(END)

Privacy Policy

$ pygwalker config --set
usage: pygwalker config [--set [key=value ...]] | [--reset [key ...]].

Available configurations:
- privacy        ['offline', 'get-only', 'meta', 'any'] (default: meta).
    "offline"   : no data will be transfered other than the front-end and back-end of the notebook.
    "get-only"  : the data will not be uploaded but only fetched from external servers.
    "meta"      : only the desensitized data will be processed by external servers. There might be some server-side processing tasks performed on the metadata in future versions.
    "any"       : the data can be processed by external services.

For example,

pygwalker config --set privacy=meta

in command line and

import pygwalker as pyg, pygwalker.utils_config as pyg_conf
pyg_conf.set_config( { 'privacy': 'meta' }, save=True)

have the same effect.

License

Apache License 2.0

Resources

Reddit HackerNews Twitter Facebook LinkedIn

More Repositories

1

Rath

Next generation of automated data exploratory analysis and visualization platform.
TypeScript
4,131
star
2

graphic-walker

An open source alternative to Tableau. Embeddable visual analytic
TypeScript
2,362
star
3

GWalkR

Turn your data frame into a tableau style drag and drop UI interface to build visualization in R.
TypeScript
376
star
4

cube-core

Core data structure of building cubes or pivot table
JavaScript
31
star
5

pygwalker-in-streamlit

build visual exploration app using pygwalker in streamlit
Python
28
star
6

visual-insights

automated data analysis and visualization pipelines.
TypeScript
15
star
7

gw-dsl-parser

Generate SQL from Graphic Walker visualization DSL
Go
11
star
8

vue-graphic-walker

vue componet for graphic walker (tableau alternative)
TypeScript
9
star
9

web-data-loader

data loader for data analytic product in working in browser
TypeScript
7
star
10

ml

machine learning lib in javascript.
TypeScript
4
star
11

kanaries-track

Python
3
star
12

graphic-walker-integration-example

Config dataset fields, transform columns into fields compatible with @kanaries/graphic-walker.
TypeScript
2
star
13

wasm-worker

Rust
2
star
14

pygwalker-offline-example

pygwalker offline example
Jupyter Notebook
2
star
15

data-explaining-tool

a data explaining tool for data visualization
TypeScript
2
star
16

dataset

dataset collection
1
star
17

graphic-walker-examples

examples built with graphic walker
TypeScript
1
star
18

kanaries-adapters

TypeScript
1
star
19

vega-theme-designer

TypeScript
1
star
20

pygwalker-data-painter-demo

HTML
1
star
21

augmented-pivot-table

TypeScript
1
star
22

pygwalker-nb-gallery

pygwalker gallery of notebook examples
HTML
1
star
23

kanaries.github.io

homepage of kanaries
1
star
24

photes-io-obsidian-plugin

AI Image to text notes plugin in obsidian
TypeScript
1
star
25

pygwalker-streamlit-eda

pygwalker + streamlit for EDA with latest updates
Python
1
star
26

pygwalker-demos

Jupyter Notebook
1
star