A GUI for Pandas DataFrames

Overview

PandasGUI

A GUI for analyzing Pandas DataFrames.

Demo

PandasGUI Demo

Installation

Install latest release from PyPi:

pip install pandasgui

Install directly from Github for the latest unreleased changes:

pip install git+https://github.com/adamerose/pandasgui.git

Usage

Create and view a simple DataFrame

import pandas as pd
from pandasgui import show
df = pd.DataFrame(([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['a', 'b', 'c'])
show(df)

PandasGUI comes with sample datasets that will download on first use.
You can also import all_datasets which is a dictionary of all the sample datasets

from pandasgui import show
from pandasgui.datasets import pokemon, titanic, all_datasets
show(**all_datasets)

Features

  • View DataFrames and Series (with MultiIndex support)
  • Interactive plotting
  • Filtering
  • Statistics summary
  • Data editing and copy / paste
  • Import CSV files with drag & drop
  • Search toolbar

More Info

Issues, feedback and pull requests are welcome.

This project is still in version 0.x.y and subject to breaking changes. The latest changes will be on the develop branch, and will be occasionally merged to master as a release with a tag indicating the version number and published to PyPi.

If you like this project remember to leave a ! And if you want to give more support you can Buy Me A Coffee.

Comments
  • Feature Tracker

    Feature Tracker

    Edit- Closing this thread since the number of feature requests from users other than myself has grown pretty large so going forward let's track each one in a new issue. If you have any feature request that doesn't have an open issue already please create one

    I'll be working on the list below still but not adding to it anymore. if you see something listed that you really want implemented or needs more discussion feel free to open an issue if it doesn't have one.

    Planned Enhancements

    • Set up CICD and better unit testing
    • Upgrade from PyQt5 to PyQt6
    • Add image HTML export for Grapher (Plotly)
    • Add checkbox to export dialog for whether to include index. Leave drag & drop export assuming index=False
    • Add progress indicator and status bar & log for all messages and actions
    • Column reordering
    • Column hiding/deleting
    • Improve Statistics tab (make columns selectable to show more details such as...)
      • unique values counts
      • histogram
      • Count and % missing (NaN)
    • Change column data types
    • Put new Grapher plots in tabs instead of overwriting previous plot
    • Data display format (float & date)
    • Allow multi-selection and rearranging of DataFrames in left nav menu
    • Rename dataframes
    • Drop NA / fill NA
    • Save workspace state (so you can close PandasGUI and re-open it later with all the same data/plots/filters)
    • Outlier detection
    • JMP-style 'calculated' columns which are columns with values defined by a function, that get automatically recalculated after any change to the DataFrame
    • Lasso selection in graphing UI that can filter selected points from the DataFrame
    • When you click on a cell and then click on a row, it should highlight the row (as when you just click on a row)

    Done

    • Find search bar
    • Grapher tab (drag & drop columns to do plotting)
    • Column sorting
    • Filters tab
    • Make tabs detachable and dockable
    • Edit DataFrame by double clicking a single cell and typing a new value
    • Sort DataFrame by a column by left clicking the header
    • Add DataFrame graphing tab
    • Filters that can be toggled on and off
    • Action history log
    • Custom kwargs in Grapher
    • Import / Export CSV
    • Copy/Paste support in DataFrame viewer
    • Add Reshaper (pivot / melt)
    • Automatic date parsing on import
    • Dark mode
    • Generate runnable code from change history to replicate steps (including plotting)
    • Add right-click context menu on column headers
    • Add nunique column in the Grapher drag and drop interface
    • Option to delete DataFrame

    Will not add

    • Automatically sync changes between DataFrames in GUI and iPython
    • Support for remote servers like Google Colab or Jupyterhub. This is not possible, you can only render PyQt5 widgets on the same machine it is running on.
    opened by adamerose 34
  • Group by mean on lines should not be applied by default

    Group by mean on lines should not be applied by default

    Make group by on lines optional

    Just tracked an issue where pretty much any time series with more than a handful of groupings just hangs pandasgui.

    This is because group by explodes with each grouping, getting lots of zero values (or even null values if data has holes), creating a sparse dataframe in the billions of rows... The longer the time series or unique values in grouping, the worse it gets. ie. 30K values in X, col A with 14 values values and col B with 5 unique values, That's over 2B rows, starting with a dataframe of only 30K rows... Typical laptops start to really struggle at that point, and plotly just not displaying anything in many cases.

    Ask

    • Maybe disable that until we have derived values?
    • or add a checkbox to enable this?
    • Or perhaps only include X and color. (Even then, if color is a continuous scale instead of a categorical, this could once more explode...)

    Side benefit is that data is not masked when disabled.

    enhancement 
    opened by fdion 28
  • WebGL error

    WebGL error

    When trying to plot a dataframe on Mac (python 3.8, latest pandasgui from this repository), I am getting an error saying webgl is not available. I checked all browsers I have and they all support webgl (meaning when I go to the webgl site, I can see the graph - it is possible this is webgl2 not 1).

    The dataset I used is here: https://drive.google.com/file/d/1qlUt1_X_0BxbmFDP5YgAqIQBp3osP4jz/view?usp=sharing Screen Shot 2020-08-18 at 2 56 05 PM

    opened by miglto 20
  • TypeError: unhashable type: 'list'

    TypeError: unhashable type: 'list'

    Hi just upgraded to 0.2.8 now and then I starting to get this error


    TypeError                                 Traceback (most recent call last)
    <ipython-input-4-7fe66a702bc1> in <module>
          1 from pandasgui import show
    ----> 2 show(df)
    
    ~\AppData\Local\Programs\Python\Python39\lib\site-packages\pandasgui\gui.py in show(settings, *args, **kwargs)
        362     kwargs = {**kwargs, **dataframes}
        363 
    --> 364     pandas_gui = PandasGui(settings=settings, **kwargs)
        365     pandas_gui.caller_stack = inspect.currentframe().f_back
        366 
    
    ~\AppData\Local\Programs\Python\Python39\lib\site-packages\pandasgui\gui.py in __init__(self, settings, **kwargs)
         74         # Adds DataFrames listed in kwargs to data store.
         75         for df_name, df in kwargs.items():
    ---> 76             self.store.add_dataframe(df, df_name)
         77 
         78         # Default to first item
    
    ~\AppData\Local\Programs\Python\Python39\lib\site-packages\pandasgui\store.py in add_dataframe(self, pgdf, name)
        413         pgdf.store = self
        414 
    --> 415         pgdf.df = clean_dataframe(pgdf.df, name)
        416 
        417         # Add it to store and create widgets
    
    ~\AppData\Local\Programs\Python\Python39\lib\site-packages\pandasgui\utility.py in clean_dataframe(df, name)
        264     converted_names = []
        265     dtypes_old = df.dtypes
    --> 266     df = parse_dates(df)
        267     dtypes_new = df.dtypes
        268     for col_name in [df.columns[ix] for ix in range(len(dtypes_new)) if dtypes_old[ix] != dtypes_new[ix]]:
    
    ~\AppData\Local\Programs\Python\Python39\lib\site-packages\pandasgui\utility.py in parse_dates(df)
        229 def parse_dates(df: Union[pd.DataFrame, pd.Series]):
        230     if type(df) == pd.DataFrame:
    --> 231         return df.apply(
        232             lambda col: pd.to_datetime(col, errors='ignore') if col.dtypes == object else col,
        233             axis=0)
    
    ~\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\frame.py in apply(self, func, axis, raw, result_type, args, **kwds)
       7763             kwds=kwds,
       7764         )
    -> 7765         return op.get_result()
       7766 
       7767     def applymap(self, func, na_action: Optional[str] = None) -> DataFrame:
    
    ~\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\apply.py in get_result(self)
        183             return self.apply_raw()
        184 
    --> 185         return self.apply_standard()
        186 
        187     def apply_empty_result(self):
    
    ~\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\apply.py in apply_standard(self)
        274 
        275     def apply_standard(self):
    --> 276         results, res_index = self.apply_series_generator()
        277 
        278         # wrap results
    
    ~\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\apply.py in apply_series_generator(self)
        288             for i, v in enumerate(series_gen):
        289                 # ignore SettingWithCopy here in case the user mutates
    --> 290                 results[i] = self.f(v)
        291                 if isinstance(results[i], ABCSeries):
        292                     # If we have a view on v, we need to make a copy because
    
    ~\AppData\Local\Programs\Python\Python39\lib\site-packages\pandasgui\utility.py in <lambda>(col)
        230     if type(df) == pd.DataFrame:
        231         return df.apply(
    --> 232             lambda col: pd.to_datetime(col, errors='ignore') if col.dtypes == object else col,
        233             axis=0)
        234     elif type(df) == pd.Series:
    
    ~\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\tools\datetimes.py in to_datetime(arg, errors, dayfirst, yearfirst, utc, format, exact, unit, infer_datetime_format, origin, cache)
        799                 result = result.tz_localize(tz)
        800     elif isinstance(arg, ABCSeries):
    --> 801         cache_array = _maybe_cache(arg, format, cache, convert_listlike)
        802         if not cache_array.empty:
        803             result = arg.map(cache_array)
    
    ~\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\tools\datetimes.py in _maybe_cache(arg, format, cache, convert_listlike)
        171     if cache:
        172         # Perform a quicker unique check
    --> 173         if not should_cache(arg):
        174             return cache_array
        175 
    
    ~\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\tools\datetimes.py in should_cache(arg, unique_share, check_count)
        135     assert 0 < unique_share < 1, "unique_share must be in next bounds: (0; 1)"
        136 
    --> 137     unique_elements = set(islice(arg, check_count))
        138     if len(unique_elements) > check_count * unique_share:
        139         do_caching = False
    
    TypeError: unhashable type: 'list'
    

    Environment OS: (eg. Windows 10) Python: (eg. 3.9)

    bug 
    opened by bjornjorgensen 15
  • supports with dark theme?

    supports with dark theme?

    Hi, thanks for your awesome work. I love it

    I didn't use every features of pandasgui yet. but i'll try. And maybe I expect myself to write very basic tutorial for my students.

    but there's few suggestion for this project.

    1. it's good to see this in colab.
    스크린샷 2020-10-26 15 33 38
    1. when pandasgui didn't work in colab. i tried to use it on jupyter lab. (and it worked !) however as my local pc has dark theme. it didn't work properly.
    스크린샷 2020-10-26 15 43 06

    Here are my environments

    • macOS catalina
    • python version 3.8.3
    • pandasgui version 0.2.7
    • pandas version 1.1.2

    thanks again.

    enhancement 
    opened by jhk0530 10
  • Sync modifications in GUI to iPython & record history

    Sync modifications in GUI to iPython & record history

    I noticed that you're looking for feedback... and I think this project is on to something...

    My dream DataFrame viewer would work like this:

    from pandasgui import DataFrameViewer
    viewer = DataFrameViewer()
    viewer.open()  # opens a GUI window
    viewer.bind(df1)  # tab 1 in the viewer
    viewer.bind(df2)  # tab 2 in the viewer
    viewer.bind(df3)  # tab 3 in the viewer
    

    Now when you change a cell value in the GUI, the application "pushes" the code to the python/ipython shell i.e., you see df1.at['row', 'col'] = 10 in the shell.

    Moreover, if you type df1.at['row', 'col'] = 20 in the shell, the value automatically changes in the GUI. I think such an application would be 1000+ Github stars in no time.

    opened by pandichef 10
  • pandasgui shutdown out of interactive cmd, pandasgui.show(df, settings={'block': True}) is needed.

    pandasgui shutdown out of interactive cmd, pandasgui.show(df, settings={'block': True}) is needed.

    Hi @adamerose ,

    I am trying pandasgui in some python script, unlike in interactive cmd, it shutdown immediately after running. I find settings={'block': True} is necessary, would you please figure it out in the demo examples? Thank you and pandasgui is nice tool!

    bug 
    opened by forhonourlx 9
  • Auto complete columns

    Auto complete columns

    Purpose

    Adding autocompletion to the filter QLineEdit widgets. This is to get feedback. I would think this is better than copy / paste or drag and drop, maybe? If this works ok, I'd like to expand and do proper filtering of valid values based on column in a future PR.

    This doesn't really close #88 as I think the column header filtering is probably what a lot of people really want, but that is too much of time budget for me ATM.

    Added:

    • constant for max cardinality of categoricals to be included in autocompletion (should be a user setting...)

    • checkbox below the filter box to enable/disable autocompletion backtick_checkbox

    • QCompleter based on a list of columns (backtick delimited) and values for low cardinality categoricals (quote delimited)

    • case insensitive suggestions all_c_matches

    • start with backtick to get list of columns only backtick

    • type the numexpr as usual, ie ==, in (), !=, then to select an available value, use quote (") quote

    opened by fdion 6
  • Mailing list or other communication conduit

    Mailing list or other communication conduit

    Beside doing feature requests or creating bugs, there's a good bit of stuff that would benefit from a mailing list to discuss some development issues, UI/UX feedback from users etc.

    enhancement 
    opened by fdion 6
  • - WebGL is not supported by your browser - for scatter, line, scatter3d plots

    - WebGL is not supported by your browser - for scatter, line, scatter3d plots

    PLEASE FILL OUT THE TEMPLATE

    Hello, thank you for this amazing app, it is really helpful.

    Describe the bug

    Some plots works and other don't. Histogram is fine, as well as Contour and Heatmap.

    But the two main ones that I want to use (scatter, line) don't work and shows a message in the GUI when I click on the "Finish" button :

    " WebGL is not supported by your browser - visit https://get.webgl.org for more info"

    I think (not 100% sure) that i remember these types of plots were working like a week or two ago, but nothing really changed in my code since (no pip packages upgraded)

    The python console says WebEngineContext used before QtWebEngine::initialize() or OpenGL context creation failed.

    each first time I use the function show() from pandasgui. I think this message is related to the issue but I have no idea how to fix it.

    Environment OS: Mint 20 cinnamon Python: 3.8.5 conda virtual envrionment IDE: VsCode python interactive console by copy/pasting the code, OR by running the python script, same issue

    Package versions

    All packages installed : (collapsable content)

    absl-py 0.10.0 aiodns 1.1.1 aiohttp 3.7.2 aiohttp-socks 0.5.5 aiorpcX 0.18.4 alabaster 0.7.12 analytics-python 1.2.9 ansi2html 1.5.2 appdirs 1.4.4 arbitragelab 0.1.0 argh 0.26.2 argon2-cffi 20.1.0 astroid 2.4.2 astunparse 1.6.3 async-generator 1.10 async-timeout 3.0.1 atomicwrites 1.4.0 attrs 20.2.0 autopep8 1.5.4 Babel 2.8.0 backcall 0.2.0 bitstring 3.1.7 bleach 3.2.1 bokeh 2.2.1 Bottleneck 1.3.2 Brotli 1.0.9 brotlipy 0.7.0 cachetools 4.1.1 ccxt 1.35.22 certifi 2020.12.5 cffi 1.14.3 chardet 3.0.4 click 7.1.2 cloudpickle 1.6.0 cryptography 3.1.1 cvxpy 1.1.1 cycler 0.10.0 Cython 3.0a6 dacite 1.6.0 dash 1.14.0 dash-bootstrap-components 0.10.3 dash-core-components 1.10.2 dash-cytoscape 0.2.0 dash-html-components 1.0.3 dash-renderer 1.6.0 dash-table 4.9.0 dask 2.28.0 decorator 4.4.2 defusedxml 0.6.0 diff-match-patch 20200713 distlib 0.3.1 distributed 2.28.0 dnspython 1.16.0 docutils 0.16 ecdsa 0.16.0 ecos 2.0.7.post1 Electrum 4.0.4 entrypoints 0.3 evdev 1.3.0 faster-than-csv 1.8 filelock 3.0.12 flake8 3.8.3 Flask 1.1.2 Flask-Compress 1.5.0 fsspec 0.8.3 future 0.18.2 gast 0.3.3 google-auth 1.21.3 google-auth-oauthlib 0.4.1 google-pasta 0.2.0 grpcio 1.32.0 h5py 2.10.0 HeapDict 1.0.1 helpdev 0.7.1 idna 2.10 imagesize 1.2.0 importlib-metadata 1.7.0 iniconfig 1.1.1 intervaltree 3.1.0 ipykernel 5.3.4 ipython 7.18.1 ipython-genutils 0.2.0 isort 5.5.4 itsdangerous 1.1.0 jedi 0.17.1 jeepney 0.4.3 Jinja2 2.11.2 joblib 0.16.0 json5 0.9.5 jsonschema 3.2.0 jupyter-client 6.1.7 jupyter-core 4.6.3 jupyter-dash 0.3.1 jupyter-kite 1.1.0 jupyterlab 2.2.9 jupyterlab-pygments 0.1.2 jupyterlab-server 1.2.0 Keras-Preprocessing 1.1.2 keyring 21.4.0 kiwisolver 1.2.0 lazy-object-proxy 1.4.3 lightgbm 3.1.1 llvmlite 0.32.1 locket 0.2.0 Markdown 3.2.2 MarkupSafe 1.1.1 matplotlib 3.2.1 mccabe 0.6.1 mistune 0.8.4 msgpack 1.0.0 multidict 5.0.0 nbclient 0.5.0 nbconvert 6.0.6 nbformat 5.0.7 nest-asyncio 1.4.1 networkx 2.4 notebook 6.1.4 numba 0.49.1 numpy 1.18.5 numpydoc 1.1.0 oauthlib 3.1.0 opt-einsum 3.3.0 osqp 0.6.1 packaging 20.4 pandas 1.0.4 pandasgui 0.2.7 pandocfilters 1.4.2 parso 0.7.0 partd 1.1.0 pathtools 0.1.2 patsy 0.5.1 pbr 5.5.1 pexpect 4.8.0 pickleshare 0.7.5 Pillow 7.2.0 pip 20.2.3 plotly 4.10.0 pluggy 0.13.1 postgres-binary-parser 0.0.0 POT 0.7.0 prometheus-client 0.8.0 prompt-toolkit 3.0.7 protobuf 3.13.0 psutil 5.7.2 psycopg2 2.8.6 ptyprocess 0.6.0 py 1.9.0 pyasn1 0.4.8 pyasn1-modules 0.2.8 pycares 3.1.1 pycodestyle 2.6.0 pycparser 2.20 pydocstyle 5.1.1 pyflakes 2.2.0 Pygments 2.7.1 pylint 2.6.0 pynput 1.7.1 pyOpenSSL 19.1.0 pyparsing 2.4.7 PyQt5 5.15.2 PyQt5-sip 12.8.1 PyQtWebEngine 5.15.2 pyrsistent 0.17.3 PySocks 1.7.1 pytest 6.1.1 python-dateutil 2.8.1 python-jsonrpc-server 0.4.0 python-language-server 0.35.1 python-socks 1.1.0 python-xlib 0.29 pytz 2020.1 pyxdg 0.26 PyYAML 5.3.1 pyzmq 19.0.2 QDarkStyle 2.8.1 qrcode 6.1 QtAwesome 0.7.2 qtconsole 4.7.7 QtPy 1.9.0 requests 2.24.0 requests-oauthlib 1.3.0 retrying 1.3.3 rope 0.17.0 rsa 4.6 Rtree 0.9.4 scikit-learn 0.23.1 scipy 1.5.4 scs 2.1.2 SecretStorage 3.1.2 Send2Trash 1.5.0 setuptools 50.3.0 sip 4.19.13 six 1.15.0 snowballstemmer 2.0.0 sortedcontainers 2.2.2 Sphinx 3.2.1 sphinxcontrib-applehelp 1.0.2 sphinxcontrib-devhelp 1.0.2 sphinxcontrib-htmlhelp 1.0.3 sphinxcontrib-jsmath 1.0.1 sphinxcontrib-qthelp 1.0.3 sphinxcontrib-serializinghtml 1.1.4 spyder 4.1.5 spyder-kernels 1.9.4 SQLAlchemy 1.3.19 statsmodels 0.11.1 stevedore 3.3.0 tblib 1.7.0 tensorboard 2.2.2 tensorboard-plugin-wit 1.7.0 tensorflow 2.2.0 tensorflow-estimator 2.2.0 termcolor 1.1.0 terminado 0.8.3 testpath 0.4.4 threadpoolctl 2.1.0 toml 0.10.1 toolz 0.11.1 tornado 6.0.4 traitlets 5.0.4 typing-extensions 3.7.4.3 ujson 3.2.0 urllib3 1.25.10 virtualenv 20.2.2 virtualenv-clone 0.5.4 virtualenvwrapper 4.8.4 watchdog 0.10.3 wcwidth 0.2.5 webencodings 0.5.1 Werkzeug 1.0.1 wheel 0.35.1 wrapt 1.11.2 wurlitzer 2.0.1 yapf 0.30.0 yarl 1.6.2 zict 2.0.0 zipp 3.1.0

    console.log("I'm a code block!");
    

    Any help would be much appreciated. I did read this related issue but didn't find any fix for my case there https://github.com/adamerose/pandasgui/issues/25

    Thank you!

    bug 
    opened by brbatv 6
  • Using pandasgui in Colab

    Using pandasgui in Colab

    Hi there,

    I wonder if I can run pandasgui in google colab. I tried to use the following for a virtual display but did not work

    !pip install pyvirtualdisplay from pyvirtualdisplay import Display Display(visible=0, size=(1400, 900)).start()

    Any suggestion is greatly appreciated.

    Cheers, Hossein

    opened by hmok 6
Owner
Adam
Adam
📊📈 Serves up Pandas dataframes via the Django REST Framework for use in client-side (i.e. d3.js) visualizations and offline analysis (e.g. Excel)

???? Serves up Pandas dataframes via the Django REST Framework for use in client-side (i.e. d3.js) visualizations and offline analysis (e.g. Excel)

wq framework 1.2k Jan 1, 2023
NumPy and Pandas interface to Big Data

Blaze translates a subset of modified NumPy and Pandas-like syntax to databases and other computing systems. Blaze allows Python users a familiar inte

Blaze 3.1k Jan 1, 2023
Sparkling Pandas

SparklingPandas SparklingPandas aims to make it easy to use the distributed computing power of PySpark to scale your data analysis with Pandas. Sparkl

null 366 Oct 27, 2022
Create HTML profiling reports from pandas DataFrame objects

Pandas Profiling Documentation | Slack | Stack Overflow Generates profile reports from a pandas DataFrame. The pandas df.describe() function is great

null 10k Jan 1, 2023
Productivity Tools for Plotly + Pandas

Cufflinks This library binds the power of plotly with the flexibility of pandas for easy plotting. This library is available on https://github.com/san

Jorge Santos 2.7k Dec 30, 2022
A high-level plotting API for pandas, dask, xarray, and networkx built on HoloViews

hvPlot A high-level plotting API for the PyData ecosystem built on HoloViews. Build Status Coverage Latest dev release Latest release Docs What is it?

HoloViz 697 Jan 6, 2023
Bokeh Plotting Backend for Pandas and GeoPandas

Pandas-Bokeh provides a Bokeh plotting backend for Pandas, GeoPandas and Pyspark DataFrames, similar to the already existing Visualization feature of

Patrik Hlobil 822 Jan 7, 2023
Joyplots in Python with matplotlib & pandas :chart_with_upwards_trend:

JoyPy JoyPy is a one-function Python package based on matplotlib + pandas with a single purpose: drawing joyplots (a.k.a. ridgeline plots). The code f

Leonardo Taccari 462 Jan 2, 2023
Interactive plotting for Pandas using Vega-Lite

pdvega: Vega-Lite plotting for Pandas Dataframes pdvega is a library that allows you to quickly create interactive Vega-Lite plots from Pandas datafra

Altair 342 Oct 26, 2022
Create HTML profiling reports from pandas DataFrame objects

Pandas Profiling Documentation | Slack | Stack Overflow Generates profile reports from a pandas DataFrame. The pandas df.describe() function is great

null 6.8k Feb 18, 2021
Productivity Tools for Plotly + Pandas

Cufflinks This library binds the power of plotly with the flexibility of pandas for easy plotting. This library is available on https://github.com/san

Jorge Santos 2.1k Feb 18, 2021
A high-level plotting API for pandas, dask, xarray, and networkx built on HoloViews

hvPlot A high-level plotting API for the PyData ecosystem built on HoloViews. Build Status Coverage Latest dev release Latest release Docs What is it?

HoloViz 349 Feb 15, 2021
Bokeh Plotting Backend for Pandas and GeoPandas

Pandas-Bokeh provides a Bokeh plotting backend for Pandas, GeoPandas and Pyspark DataFrames, similar to the already existing Visualization feature of

Patrik Hlobil 614 Feb 17, 2021
Joyplots in Python with matplotlib & pandas :chart_with_upwards_trend:

JoyPy JoyPy is a one-function Python package based on matplotlib + pandas with a single purpose: drawing joyplots (a.k.a. ridgeline plots). The code f

Leonardo Taccari 317 Feb 17, 2021
Interactive plotting for Pandas using Vega-Lite

pdvega: Vega-Lite plotting for Pandas Dataframes pdvega is a library that allows you to quickly create interactive Vega-Lite plots from Pandas datafra

Altair 340 Feb 1, 2021
Visualize your pandas data with one-line code

PandasEcharts 简介 基于pandas和pyecharts的可视化工具 安装 pip 安装 $ pip install pandasecharts 源码安装 $ git clone https://github.com/gamersover/pandasecharts $ cd pand

陈华杰 2 Apr 13, 2022
In-memory Graph Database and Knowledge Graph with Natural Language Interface, compatible with Pandas

CogniPy for Pandas - In-memory Graph Database and Knowledge Graph with Natural Language Interface Whats in the box Reasoning, exploration of RDF/OWL,

Cognitum Octopus 34 Dec 13, 2022
Using SQLite within Python to create database and analyze Starcraft 2 units data (Pandas also used)

SQLite python Starcraft 2 English This project shows the usage of SQLite with python. To create, modify and communicate with the SQLite database from

null 1 Dec 30, 2021
Project coded in Python using Pandas to look at changes in chase% for batters facing a pitcher first time through the order vs. thrid time

Project coded in Python using Pandas to look at changes in chase% for batters facing a pitcher first time through the order vs. thrid time

Jason Kraynak 1 Jan 7, 2022