• Stars
    star
    314
  • Rank 133,353 (Top 3 %)
  • Language
    Python
  • License
    MIT License
  • Created over 8 years ago
  • Updated almost 5 years ago

Reviews

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

Repository Details

A minimalistic GUI for analyzing Pandas DataFrames.

Pandas DataFrame GUI

A minimalistic GUI for analyzing Pandas DataFrames based on wxPython.

Update: I'm currently working on a successor tabloo which avoids native dependencies and offers a more modern user interface.

Usage

import dfgui
dfgui.show(df)

Features

  • Tabular view of data frame
  • Columns are sortable (by clicking column header)
  • Columns can be enabled/disabled (left click on 'Columns' tab)
  • Columns can be rearranged (right click drag on 'Columns' tab)
  • Generic filtering: Write arbitrary Python expression to filter rows. Warning: Uses Python's eval -- use with care.
  • Histogram plots
  • Scatter plots

Demo & Docs

The default view: Nothing fancy, just scrolling and sorting. The value of cell can be copied to clipboard by right clicking on a cell.

screen1

The column selection view: Left clicking enables or disables a column in the data frame view. Columns can be dragged with a right click to rearrange them.

screen2

The filter view: Allows to write arbitrary Pandas selection expressions. The syntax is: An underscore _ will be replaced by the corresponding data frame column. That is, setting the combo box to a column named "A" and adding the condition _ == 1 would result in an expression like df[df["A"] == 1, :]. The following example filters the data frame to rows which have the value 669944 in column "UserID" and datetime.date value between 2016-01-01 and 2016-03-01.

screen3

Histogram view:

screen4

Scatter plot view:

screen5

Requirements

Since wxPython is not pip-installable, dfgui does not handle dependencies automatically. You have to make sure the following packages are installed:

  • pandas/numpy
  • matplotlib
  • wx

Installation Instructions

I haven't submitted dfgui to PyPI (yet), but you can install directly from git (having met all requirements). For instance:

pip install git+https://github.com/bluenote10/PandasDataFrameGUI

or if you prefer a regular git clone:

git clone [email protected]:bluenote10/PandasDataFrameGUI.git dfgui
cd dfgui
pip install -e .
# and to check if everything works:
./demo.py

In fact, dfgui only consists of a single module, so you might as well just download the file dfgui/dfgui.py.

Anaconda/Windows Instructions

Install wxpython through conda or the Anaconda GUI.

"Open terminal" in the Anaconda GUI environment.

git clone "https://github.com/bluenote10/PandasDataFrameGUI.git"
cd dfgui
pip install -e .
conda package --pkg-name=dfgui --pkg-version=0.1 # this should create a package file
conda install --offline dfgui-0.1-py27_0.tar.bz2 # this should install into your conda environment

Then restart your Jupyter kernel.

More Repositories

1

NimData

DataFrame API written in Nim, enabling fast out-of-core data processing
Nim
326
star
2

tabloo

Minimalistic dashboard app for visualizing tabular data
TypeScript
149
star
3

NimSvg

Nim-based DSL allowing to generate SVG files and GIF animations.
Nim
142
star
4

yachalk

πŸ–οΈ Terminal string styling done right
Python
141
star
5

oop_utils

Nim macros for building OOP class hierarchies.
Nim
36
star
6

nim-electron-karax

A minimal Nim+Karax+Electron application
Nim
21
star
7

nim-heap

Simple binary heap implementation in Nim
Nim
20
star
8

HiCS

Efficient multivariate correlation measure / high contrast subspace miner.
Nim
18
star
9

KaraxExamples

Some experiments with Karax
Nim
16
star
10

typed_argparse

πŸ’‘ type-safe args for argparse without much refactoring
Python
11
star
11

nim-stringinterpolation

String interpolation with printf syntax
Nim
11
star
12

gervill

Java
10
star
13

nim-matplotlib

Simple wrapper of matplotlib for Nim
Nim
6
star
14

Hydra

Distributed computing experiments in Nim
Nim
6
star
15

watchcode

Generic tool to solve the modify + re-run problem
Python
4
star
16

kadro

Nim
4
star
17

NimExperiments

Just a few experiments with Nim
Nim
4
star
18

rust-array-stump

A data structure mixing dynamic array and sorted set semantics -- O(sqrt N) insert/remove, O(1) rank/next/prev
Rust
4
star
19

DeepAudio

Nim
3
star
20

nim-ovr

Nim bindings for libOVR (Oculus Rift)
Nim
3
star
21

NimNimble

Nim
2
star
22

GodotExperiments

Rust
2
star
23

ScalaOculusRiftExample

Simple Oculus Rift example based on JOVR
Scala
2
star
24

ChinaStudyRawData

Attempt to make the original data of The China Study more accessible
Python
2
star
25

NimOculusRiftExample

Simple Oculus Rift example written in Nim
Nim
2
star
26

NotemarksLegacy

A markdown based note taking app -- WIP
TypeScript
1
star
27

ChordViewer

Tool to visualize guitar chord inversions with color-coded intervals
Python
1
star
28

SimpleLanguageBenchmarks

Benchmark collection of random problem + language combinations.
Python
1
star
29

RustFaustExperiments

Rust
1
star
30

pyTranscribe

pyTranscribe is a audio/video player featuring constant pitch/tempo adjustment
Python
1
star