Package: pygwalker
English|中文|Türkçe|Español|Français|Deutsch|日本語|한국어PyGWalker Cloud is released! You can now save your charts to cloud, publish the interactive cell as a web app and use advanced GPT-powered features. Check out thePyGWalker Cloudfor more details.PyGWalker: A Python Library for Exploratory Data Analysis with VisualizationPyGWalkercan 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 ofGraphicWalker". It integrates Jupyter Notebook (or other jupyter-based notebooks) withGraphic 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.VisitGoogle Colab,Kaggle CodeorGraphic Walker Online Demoto test it out!If you prefer using R, you can check outGWalkRnow!https://github.com/Kanaries/pygwalker/assets/22167673/2b940e11-cf8b-4cde-b7f6-190fb10ee44bGetting StartedRun in KaggleRun in ColabSetup pygwalkerBefore using pygwalker, make sure to install the packages through the command line using pip or conda.pippipinstallpygwalkerNoteFor an early trial, you can install withpip install pygwalker --upgradeto keep your version up to date with the latest release or evenpip install pygwaler --upgrade --preto obtain latest features and bug-fixes.Conda-forgecondainstall-cconda-forgepygwalkerormambainstall-cconda-forgepygwalkerSeeconda-forge feedstockfor more help.Use pygwalker in Jupyter NotebookQuick StartImport pygwalker and pandas to your Jupyter Notebook to get started.importpandasaspdimportpygwalkeraspygYou can use pygwalker without breaking your existing workflow. For example, you can call up PyGWalker with the dataframe loaded in this way:df=pd.read_csv('./bike_sharing_dc.csv')walker=pyg.walk(df)That's it. Now you have a interactive UI to analyze and visualize data with simple drag-and-drop operations.Cool things you can do with PyGwalker:You can change the mark type into others to make different charts, for example, a line chart:To compare different measures, you can create a concat view by adding more than one measure into rows/columns.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.You can view the data frame in a table and configure the analytic types and semantic types.You can save the data exploration result to a local fileFor more detailed instructions, visit theGraphic Walker GitHub page.Better PracticeThere are some important parameters you should know when using pygwalker:spec: for save/load chart config (json string or file path)use_kernel_calc: for using duckdb as computing engine which allows you to handle larger dataset faster in your local machine.df=pd.read_csv('./bike_sharing_dc.csv')walker=pyg.walk(df,spec="./chart_meta_0.json",# this json file will save your chart state, you need to click save button in ui mannual when you finish a chart, 'autosave' will be supported in the future.use_kernel_calc=True,# set `use_kernel_calc=True`, pygwalker will use duckdb as computing engine, it support you explore bigger dataset(<=100GB).)Example in local notebookNotebook Code:Click HerePreview Notebook Html:Click HereExample in cloud notebookKanaries Share pageUse PyGWalker in KaggleUse PyGWalker in Google ColabUse pygwalker in StreamlitStreamlit allows you to host a web version of pygwalker without figuring out details of how web application works.Here are some of the app examples build with pygwalker and streamlit:PyGWalker + streamlit for Bike sharing datasetEarthquake Dashboardimportpandasaspdimportstreamlit.components.v1ascomponentsimportstreamlitasstfrompygwalker.api.streamlitimportinit_streamlit_comm,get_streamlit_htmlst.set_page_config(page_title="Use Pygwalker In Streamlit",layout="wide")st.title("Use Pygwalker In Streamlit(support communication)")# Initialize pygwalker communicationinit_streamlit_comm()# When using `use_kernel_calc=True`, you should cache your pygwalker html, if you don't want your memory to explode@st.cache_resourcedefget_pyg_html(df:pd.DataFrame)->str:# When you need to publish your application, you need set `debug=False`,prevent other users to write your config file.# If you want to use feature of saving chart config, set `debug=True`html=get_streamlit_html(df,spec="./gw0.json",use_kernel_calc=True,debug=False)returnhtml@st.cache_datadefget_df()->pd.DataFrame:returnpd.read_csv("/bike_sharing_dc.csv")df=get_df()components.html(get_pyg_html(df),width=1300,height=1000,scrolling=True)API Referencepygwalker.walkParameterTypeDefaultDescriptiondatasetUnion[DataFrame, Connector]-The dataframe or connector to be used.gidUnion[int, str]NoneID for the GraphicWalker container div, formatted as 'gwalker-{gid}'.envLiteral['Jupyter', 'Streamlit', 'JupyterWidget']'JupyterWidget'Environment using pygwalker.field_specsOptional[Dict[str, FieldSpec]]NoneSpecifications of fields. Will be automatically inferred fromdatasetif not specified.hide_data_source_configboolTrueIf True, hides DataSource import and export button.theme_keyLiteral['vega', 'g2']'g2'Theme type for the GraphicWalker.darkLiteral['media', 'light', 'dark']'media'Theme setting. 'media' will auto-detect the OS theme.return_htmlboolFalseIf True, returns the result as an HTML string.specstr""Chart configuration data. Can be a configuration ID, JSON, or remote file URL.use_previewboolTrueIf True, uses the preview function.store_chart_databoolFalseIf True andspecis a JSON file, saves the chart to disk.use_kernel_calcboolFalseIf True, uses kernel computation for data.**kwargsAny-Additional keyword arguments.Tested EnvironmentsJupyter NotebookGoogle ColabKaggle CodeJupyter LabJupyter LiteDatabricks Notebook (Since version0.1.4a0)Jupyter Extension for Visual Studio Code (Since version0.1.4a0)Most web applications compatiable with IPython kernels. (Since version0.1.4a0)Streamlit (Since version0.1.4.9), enabled withpyg.walk(df, env='Streamlit')DataCamp Workspace (Since version0.1.4a0)Hex Projects...feel free to raise an issue for more environments.Configuration And Privacy Policy(pygwlaker >= 0.3.10)You can usepygwalker configto set your privacy configuration.$pygwalkerconfig--help

usage:pygwalkerconfig[-h][--set[key=value...]][--reset[key...]][--reset-all][--list]Modifyconfigurationfile.(default:~/Library/ApplicationSupport/pygwalker/config.json)Availableconfigurations:

-privacy['offline','update-only','events'](default:events)."offline":fullyoffline,nodataissendorapiisrequested"update-only":onlycheckwhetherthisisanewversionofpygwalkertoupdate"events":sharewhicheventsaboutwhichfeatureisusedinpygwalker,itonlycontainseventsdataaboutwhichfeatureyouarriveforproductoptimization.NoDATAYOUANALYSISISSEND.Eventsdatawillbindwithauniqueid,whichisgeneratedbypygwalkerwhenitisinstalledbasedontimestamp.Wewillnotcollectanyotherinformationaboutyou.-kanaries_token['your kanaries token'](default:emptystring).yourkanariestoken,youcangetitfromhttps://kanaries.net.refer:https://space.kanaries.net/t/how-to-get-api-key-of-kanaries.bykanariestoken,youcanusekanariesserviceinpygwalker,suchassharechart,shareconfig.options:-h,--helpshowthishelpmessageandexit--set[key=value...]Setconfiguration.e.g."pygwalker config --set privacy=update-only"--reset[key...]Resetuserconfigurationandusedefaultvaluesinstead.e.g."pygwalker config --reset privacy"--reset-allResetalluserconfigurationandusedefaultvaluesinstead.e.g."pygwalker config --reset-all"--listListcurrentusedconfiguration.More details, refer it:How to set your privacy configuration?LicenseApache License 2.0ResourcesCheck out more resources about Graphic Walker onGraphic Walker GitHubWe are also working onRATH: an Open Source, Automate exploratory data analysis software that redefines the workflow of data wrangling, exploration and visualization with AI-powered automation. Check out theKanaries websiteandRATH GitHubfor more!Use pygwalker to build visual analysis app in streamlitIf you encounter any issues and need support, join ourSlackorDiscordchannels.Share pygwalker on these social media platforms if you like it!