A curses-based DataFrame viewer inspired by TabView.


Keywords
c, u, r, s, e, d, a, t, f, m, v, i, w, cli, curses, dataframe, viewer
License
MIT
Install
pip install dabbiew==0.6

Documentation

dabbiew

https://travis-ci.org/agtumulak/dabbiew.svg?branch=master https://coveralls.io/repos/github/agtumulak/dabbiew/badge.svg?branch=master Documentation Status

A curses-based DataFrame viewer inspired by TabView

alternate text

About

This is a side project for now. I work on it because I want more green squares on my GitHub profile.

The main difference between TabView and DabBiew is that underlying data structure is a pandas DataFrame instead of a list of lists. This has the advantage of potentially being able to take advantage of Dask, which supports "Big Data" collections for distributed environments.

Installation

pip install dabbiew

Usage

Open any csv or Excel file:

dabbiew file.csv
dabbiew file.xlsx

Key Bindings

A move command can be repeated by typing the number of times to repeat before issuing an action. For example, to move down 12 times, simply type 12j (or 12↓). To perform a search, open the search bar with \, enter a substring to match, and hit return ().

Key Action
v toggle selection mode
esc cancel selection
h j k l movement keys
ctrl+f, ctrl+b page down, page up
s, S sort ascending, descending
gg, GG jump to top, bottom of DataFrame
^, $ jump to left, right of DataFrame
,, . decrease, increase selection width
<, > decrease, increase all widths
t, y toggle header, index
[, ] decrease, increase index width
: toggle command mode
/ toggle search bar
n, p next, previous match
d enter ipdb debug mode
q quit

Command Mode

Entering command mode (:) allows the user to call any DataFrame method which returns a Series or DataFrame on the current selection. For instance, the user can call :sum(), :where(df==42), or even :where(df==42).sum() on a selection. The resulting Series or DataFrame is rendered in a nested instance. To go back to the previous DataFrame, simply quit (q) the current instance. If the selection is just a single cell, the call is made to the entire DataFrame inplace. Note the name of the current DataFrame is always called df.

Documentation

To generate the source code documentation do:

cd doc
make html

and open _build/html/index.html